C# テキストファイルの読み書きのサンプル

C#のテキストファイルの書き込みと読み込みのサンプルです。

確認環境
・Microsoft Visual Studio Community 2019

目次

サンプル StreamReaderクラスで読み込む
  StreamWriterクラスで書き込む

StreamReaderクラスで読み込む

Public Sub New (path As String, encoding As Encoding)

ファイルを読み込むサンプルです。
1行ずつ読み込みリストにセットします。

using System;
using System.IO;

class Test1
{
    static void Main()
    {
        string path1 = @"d:\test1\test1.txt";

        try
        {
            using (StreamReader sr1 = new StreamReader(path1, 
                System.Text.Encoding.GetEncoding("shift_jis")))
            {
                string a = "";
                while ((a = sr1.ReadLine()) != null)
                {
                    Console.WriteLine("ReadLine" + a);
                }
                //a = sr1.ReadToEnd();
                //Console.WriteLine("ReadToEnd" + a);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
}

8行目の@は、パスの指定時にエスケープ文字を入れなくてすむようになります。可読性があがります。

12行目のusingステートメントでファイルを閉じるDisposeメソッドを自動で実行してくれます。
try-catch-finallyのfinallyでファイルを閉じる意味になります。
以下は、MicrosoftのC#のusingステートメントのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/using-statement

13行目のStreamReaderの2つめの引数でshift_jisを指定しています。2つめの引数を省略するとUTF-8になります。

16行目のReadLineメソッドは、1行ずつ読み込みます。
20行目のReadToEndメソッドは、すべて読み込みます。

24-27行目は、例外が起きたときに実行されます。
ファイルが存在しない場合は、ファイル 'd:\test1\test1.txt' が見つかりませんでした。等表示されます。

StreamWriterクラスで書き込む

Public Sub New (path As String, append As Boolean, encoding As Encoding)

ファイルを書き込むサンプルです。
リストから1行ずつ書き込みます。

using System;
using System.IO;

class Test1
{
    static void Main()
    {
        string path1 = @"d:\test1\test1.txt";

        try
        {
            using (StreamWriter sw1 = new StreamWriter(path1,false,
                System.Text.Encoding.GetEncoding("shift_jis")))
            {
                sw1.WriteLine("あいうえお");
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
}

8行目の@は、パスの指定時にエスケープ文字を入れなくてすむようになります。可読性があがります。

12行目のusingステートメントでファイルを閉じるDisposeメソッドを自動で実行してくれます。
try-catch-finallyのfinallyでファイルを閉じる意味になります。
以下は、MicrosoftのC#のusingステートメントのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/using-statement

13行目のStreamWriterの3つめの引数でshift_jisを指定しています。3つめの引数を省略するとUTF-8になります。

12行目のStreamWriterの2つめの引数がfalseの場合、新規で書き込みます。
trueの場合、追記になります。

18-21行目は、例外が起きたときに実行されます。
ファイルが存在しない場合は、ファイルが新規作成されるので例外になりません。

関連の記事

C# if文 条件分岐を行うサンプル
C# switch文のサンプル

△上に戻る