次の方法で共有


ファイルの読み書き

C ランタイム ライブラリのファイル処理関数を使用している場合、MFC の読み取りと書き込みの操作についてはよく理解できると思います。 この記事では、CFile オブジェクトに対する直接的な読み取りおよび書き込み操作について説明します。 また、CArchive クラスを使用して、バッファーに入れられたファイルの入出力を行うこともできます。

ファイルに対する読み取りと書き込みを行うには

  1. ファイル内のデータの読み取りと書き込みを行うには、Read メンバー関数と Write メンバー関数を使用します。

    または

  2. Seek メンバー関数は、ファイル内の特定のオフセットに応じて移動するためにも使用できます。

Read は、バッファーへのポインターと、読み取るバイト数を取得し、読み取られた実際のバイト数を返します。 ファイルの終わり (EOF) に到達したために必要なバイト数を読み取れなかった場合は、実際に読み取られたバイト数が返されます。 読み取りエラーが発生した場合は、例外がスローされます。 Write は、Read と似ていますが、書き込まれたバイト数は返されません。 指定されたすべてのバイトが書き込まれないなどの書き込みエラーが発生した場合は、例外がスローされます。 有効な CFile オブジェクトがある場合、次の例に示すように、そのオブジェクトから読み取ったり、オブジェクトに書き込んだりすることができます。

TCHAR   szBuffer[256]; 
UINT    nActual = 0; 
CFile   myFile;

if ( myFile.Open( _T("c:\\test\\myfile.dat"), CFile::modeCreate |   
   CFile::modeReadWrite ) )
{
   myFile.Write( szBuffer, sizeof( szBuffer ) ); 
   myFile.Flush();
   myFile.Seek( 0, CFile::begin );
   nActual = myFile.Read( szBuffer, sizeof( szBuffer ) ); 
}

Note

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

関連項目

ファイル