ファイルの読み書き

更新 : 2007 年 11 月

C ランタイム ライブラリのファイル操作関数を使った経験がある方は、MFC のファイル操作も簡単に行うことができます。ここでは、CFile オブジェクトを直接読み書きする方法について説明します。バッファを通じてファイル入出力を行う場合は、CArchive クラスを使います。

ファイルを読み書きするには

  1. ファイル内のデータを読み書きするには、メンバ関数 ReadWrite を使います。

    または

  2. オフセットを指定してファイル内を移動するには、メンバ関数 Seek を使います。

Read は、バッファへのポインタと読み出すバイト数を示す UINT 値を取り、実際に読み出したバイト数を示す UINT 値を返します。ファイルの末尾 (EOF: end-of-file) に到達して、指定されたバイト数が読み出せないときは、実際に読み出したバイト数を返します。読み取りエラーが発生したときは、例外がスローされます。WriteRead と似ていますが、書き込みに成功したバイト数を戻り値として返しません。書き込みエラーが発生したとき (指定されたバイト数を書き込めなかった場合など) は、例外がスローされます。有効な 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 ) ); 
}
6337eske.alert_note(ja-jp,VS.90).gifメモ :

通常、入出力操作は、try/catch 例外処理ブロック内で行います。詳細については、「例外処理 (MFC)」を参照してください。

参照

概念

MFC のファイル