プログラムを書こう!

実務や自作アプリ開発で習得した役に立つソフトウェア技術情報を発信するブログ

C++/CLIでテキストファイルにテキストデータを書き出す。

f:id:paveway:20190914064630j:plain

はじめに

前回テキストファイルからテキストデータを読み込む方法をご紹介しました。
今回はテキストファイルにテキストデータを書き出す方法をご紹介します。

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

おわりに

テキストファイルへの書き出しは、要件によって処理が変わることもあまりないので、ご紹介した方法を使いまわせると思います。

もうひとりで頑張らない。TOEICオンラインコーチスタディサプリENGLISH