この文書の現在のバージョンと選択したバージョンの差分を表示します。
次のリビジョン | 前のリビジョン | ||
テキストファイルの読み書き [2009/02/01 07:30] 192.168.0.61 作成 |
— (現在) | ||
---|---|---|---|
ライン 1: | ライン 1: | ||
- | ====== テキストファイルの読み書き ====== | ||
- | |||
- | テキストファイルの読み書きには、System::IO::StreamWriterとSystem::IO::StreamReaderを使います。スタックセマンティクスを用いています。 | ||
- | |||
- | ===== 読み込み ===== | ||
- | |||
- | <code cpp> | ||
- | try | ||
- | { | ||
- | System::IO::StreamReader sr(L"C:TestTest.txt", System::Text::Encoding::UTF8); | ||
- | |||
- | String^ line=nullptr; | ||
- | while ( (line=sr.ReadLine()) != nullptr ) | ||
- | { | ||
- | // lineに一行づつ読み込まれる | ||
- | } | ||
- | } | ||
- | catch ( System::IO::FileNotFoundException^ ) | ||
- | { | ||
- | // ファイルがない | ||
- | } | ||
- | catch ( System::Exception^ e ) | ||
- | { | ||
- | // それ以外のエラー | ||
- | } | ||
- | </code> | ||
- | |||
- | 上記の例はStreamReaderコンストラクタとReadLine()の例外処理を一つにまとめていますが、ちゃんと書く場合は、別々にしたほうがいいです。 | ||
- | |||
- | ===== 書き込み ===== | ||
- | |||
- | <code cpp> | ||
- | try | ||
- | { | ||
- | String^ path = L"C:TestTest.txt"; | ||
- | System::IO::StreamWriter sw(path, false, System::Text::Encoding::UTF8); | ||
- | sw.WriteLine(L"あああ"); | ||
- | sw.WriteLine(L"いいい"); | ||
- | sw.WriteLine(L"ううう"); | ||
- | } | ||
- | catch ( System::Exception^ e ) | ||
- | { | ||
- | // エラー | ||
- | } | ||
- | </code> | ||
- | 上記のStreamReaderもStreamWriterもスコープからはずれるとデストラクタが呼ばれ、ファイルを解放してくれます。 | ||
- | またUTF8で読み書きされます。 |