はじめに
前回テキストファイルからテキストデータを読み込む方法をご紹介しました。
今回はテキストファイルにテキストデータを書き出す方法をご紹介します。
StreamWriterクラス
前回紹介したStreamReaderクラスと対になるStreamWriterクラスを使用します。
テキストファイルにテキストデータを書き出すWriteメソッドは、書き出すデータの型ごとに用意されていますが大きく分けて次の2つあります。
メソッド名 | 機能 |
---|---|
Write | データを書き込みます。データの終端に行終端文字(改行文字)を付加しません。 |
WriteLine | データを書き込みます。データの終端に行終端文字(改行文字)を付加します。 |
またWriteしただけでは、バッファに書き出されるだけで、実際のファイルにはまだ書き出されません。
ファイルに書き出すには、FlushメソッドかCloseメソッドを実行します。
void WriteText(String^ fileName, String^ text) { StreamWriter^ sw = nullptr; try { // StreamWriterを生成します。 // 今回はファイル名だけ指定して行います。この場合、文字エンコーディングはUTF8Encodingになります。 // その他の生成方法についてはAPI Referenceを参照してください。 sw = gcnew StreamWriter(fileName); // ①データを書き出します。終端に行終端文字(改行文字)は付加されません。 sw->Write(text); // ②データを書き出します。終端に行終端文字(改行文字)を付加します。 sw->WriteLine(text); // 書き出したデータを実際のファイルに書き出します。 sw->Flush(); } catch (Exception^ e) { // 例外発生時の処理を記述します。 // 発生する例外ごとに処理したい場合は、それぞれの例外のcatch節を用意して処理してください。 } finally { // リソースを確実に開放するため、finally節でStreamWriterをクローズします。 if (sw != nullptr) { sw->Close(); } } }
API Reference
StreamWriter
おわりに
テキストファイルへの書き出しは、要件によって処理が変わることもあまりないので、ご紹介した方法を使いまわせると思います。