ファイルの読み書き
更新 : 2007 年 11 月
C ランタイム ライブラリのファイル操作関数を使った経験がある方は、MFC のファイル操作も簡単に行うことができます。ここでは、CFile オブジェクトを直接読み書きする方法について説明します。バッファを通じてファイル入出力を行う場合は、CArchive クラスを使います。
ファイルを読み書きするには
ファイル内のデータを読み書きするには、メンバ関数 Read と Write を使います。
または
オフセットを指定してファイル内を移動するには、メンバ関数 Seek を使います。
Read は、バッファへのポインタと読み出すバイト数を示す UINT 値を取り、実際に読み出したバイト数を示す UINT 値を返します。ファイルの末尾 (EOF: end-of-file) に到達して、指定されたバイト数が読み出せないときは、実際に読み出したバイト数を返します。読み取りエラーが発生したときは、例外がスローされます。Write は Read と似ていますが、書き込みに成功したバイト数を戻り値として返しません。書き込みエラーが発生したとき (指定されたバイト数を書き込めなかった場合など) は、例外がスローされます。有効な CFile オブジェクトに対しては、次の例のように読み書きを行うことができます。
TCHAR szBuffer[256];
UINT nActual = 0;
CFile myFile;
if ( myFile.Open( _T("c:\\test\\myfile.dat"), CFile::modeCreate |
CFile::modeReadWrite, NULL ) )
{
myFile.Write( szBuffer, sizeof( szBuffer ) );
myFile.Flush();
myFile.Seek( 0, CFile::begin );
nActual = myFile.Read( szBuffer, sizeof( szBuffer ) );
}
メモ : |
---|
通常、入出力操作は、try/catch 例外処理ブロック内で行います。詳細については、「例外処理 (MFC)」を参照してください。 |