スライドショー

【C#入門】ファイルにテキストを書き込む(文字コード/StreamWriter)

こんにちは!エンジニアの中沢です。

C#にはファイルにテキストを書き込むためにStreamWriterクラスWriteLineメソッドがあります。ファイルに書き込むときには、文字コードを指定することもできます。この記事では、

  • ファイルにテキストを書き込むには?
  • ファイルにテキストを上書きで書き込む方法
  • という基本的な内容から、ファイルにテキストを追記する方法などの応用的な使い方に関しても解説していきます。今回はこれらの方法を覚えるために、ファイルに書き込むさまざまな使い方をわかりやすく解説します!

    ファイルにテキストを書き込むには?

    ファイルにテキストを書き込むには、ファイルを開く・ファイルに書き込む・ファイルを閉じるという3ステップが必要です。テキストを書き込むときには、文字コードを指定する必要があります。文字コードを間違えると文字化けの原因になるので注意してください。

    ファイルにテキストを書き込むときにすでにファイルが存在する場合は、既存のファイルに上書きして保存する方法と、追記する方法があるので、状況に応じて使い分けてください。

    ファイルにテキストを上書き保存で書き込む方法

    ここでは、ファイルにテキストを上書き保存で書き込む方法を解説します。ファイルにテキストを上書き保存するには、StreamWriterのコンストラクタの第2引数にfalseを指定します。作成するファイルが存在しない場合には、新規にファイルが作成されます。

    すでにファイルが存在する場合には、そのファイルは削除されて上書き保存されるので注意が必要です。次のプログラムで確認してみましょう。

    using System;
    using System.IO;
    using System.Text;
    
    namespace Sample
    {
        class Sample
        {
            static void Main()
            {
                // 文字コードを指定
                Encoding enc = Encoding.GetEncoding("Shift_JIS");
    
                // ファイルを開く
                StreamWriter writer = new StreamWriter(@"E:\Samurai.txt", false, enc);
    
                // テキストを書き込む
                writer.WriteLine("この内容を書き込みます");
    
                // ファイルを閉じる
                writer.Close();
    
                Console.WriteLine("ファイルに書き込みました");
                Console.ReadKey();
            }
        }
    }

    実行結果:

    ファイルに書き込みました

    このプログラムでは、初めにEncoding.GetEncoding("Shift_JIS")で文字コードを指定しています。次にStreamWriterでファイルを開いています。writer.WriteLineでテキストを書き込み、writer.Closeでファイルを閉じて処理を完了させています。

    ファイルにテキストを追記する方法

    ファイルにテキストを追記するには、StreamWriterのコンストラクタの第2引数にtrueを指定します。次のプログラムで確認してみましょう。

    using System;
    using System.IO;
    using System.Text;
    
    namespace Sample
    {
        class Sample
        {
            static void Main()
            {
                // 文字コードを指定
                Encoding enc = Encoding.GetEncoding("Shift_JIS");
    
                // ファイルを開く
                StreamWriter writer = new StreamWriter(@"E:\Samurai.txt", true, enc);
    
                // テキストを書き込む
                writer.WriteLine("この内容を書き込みます");
    
                // ファイルを閉じる
                writer.Close();
    
                Console.WriteLine("ファイルに書き込みました");
                Console.ReadKey();
            }
        }
    }
    

    実行結果:

    ファイルに書き込みました

    これで既存のファイルに追記して書き込み保存することができました。

    まとめ

    いかがでしたか?今回はファイルにテキストを書き込む方法を解説しました。文字コードの指定を間違えると文字化けの原因になるので注意してくださいね。もし、ファイルに書き込む方法を忘れてしまったらこの記事を確認してください!

    LINEで送る
    Pocket

    無料でSEからWebエンジニアへ転職しませんか?



    侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

    • システムエンジニアという職業だけどコードが書けない
    • 事務作業が多くスキルがないため将来が不安
    • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
    という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

    弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

    既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

    まずは無料体験レッスンを予約する

    書いた人

    中沢 丈

    中沢 丈

    フリーランスエンジニア。
    システム開発からコンテンツ作成まで幅広く対応します。

    連絡先はこちらです。
    [email protected]

    おすすめコンテンツ

    あなたにぴったりなプログラミング学習プランを無料で診断!

    プログラミング学習の効率を劇的に上げる学習メソッドを解説