파일 입출력 방식
1. 일반 파일 입출력
A. CFile클래스
B. Read(), Write() 등 함수 이용
2. 직렬화
A. CArchive 클래스
B. << 또는 >> 연산자 사용
CFile클래스
핵심 입출력 연산
1. 파일 열기
예제 :
CFile file;
CFileException e;
If (!file.Open(“File Path”,CFile::modeReadWrite,&e)) e.ReportError();
2. 파일 읽기
UINT CFile::Read (void* lpBuf, UINT nCount) ;
3. 파일 쓰기
void CFile::Write (const void* lpBuf, UINT nCount) ;
4. 파일에서 포인트 위치를 변경하기
ULONGLONG CFile::Seek (LONGLONG lOff, UINT nFrom) ;
5. 파일 닫기
예제 :
file.Close();
파일 접근 모드
CFile::modeCreate => 파일을 무조건 생성한다
CFile::modeNoTruncate => 파일 크기를 변경하지 않고 해당 파일을 연다
CFile::modeRead => 읽기전용모드로 파일을 열거나 생성한다
CFile::modeReadWrite => 읽기 쓰기 전용모드로 파일을 열거나 생성한다
CFile::modeWrite => 쓰기 전용모드로 파일을 열거나 생성한다
CFile::shareDenyNone => 다른 프로세스에게 파일에 대한 접근을 허용한다
CFile::shareDenyRead => 다른 프로세스에게 파일에 대한 읽기권한을 금지한다
CFile::shareDenyWrite => 다른 프로세스에게 파일에 대한 쓰기권한을 금지한다
CFile::shareDenyExclusive => 다른 프로세스에게 파일데 대한 실행권한을 금지한다
도큐먼트
1. CDocument 클래스
A. 템플릿을 구성하는 네개 클래스중 데이터를 관리하는 클래스가 CDocument 클래스이다.
B. 사용시 OnSaveDocument() 함수나 OnNewDocument() 함수 OnOpenDocument() 함수를 오버라이딩 한다.
2. CArchive 클래스
A. CArchive & operator << (CArchive &, Type &) // 데이타를 저장
B. CArchive & operator >> (CArchive &, Type &) // 데이타를 읽기
3. Serialize() 함수
A. 직렬화란 하드디스크와 같은 저장 매체에 데이터를 저장하고 읽어 들이는 과정을 말한다.
B. AppWizard로 프로젝트를 생성하면 이미 애플리케이션의 CDocument 파생 클래스에는 Serialize() 함수가 오버라이딩 되여있다.