C# テキストファイルの書き込みと読み込みと存在チェック

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

目次

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

テキストファイルに書き込むサンプルです。

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

close処理

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になります。

新規で書き込む or 追記で書き込む

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

例外処理

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

StreamWriterクラス

 

テキストファイルを読み込む

テキストファイルを読み込むサンプルです。

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

close処理

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' が見つかりませんでした。等表示されます。

StreamReaderクラス

 

ディレクトリとファイルの存在チェック

ディレクトリとファイルの存在チェックのサンプルです。

using System;
using System.IO;

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

        if (!Directory.Exists(path1))
        {
            Console.WriteLine("ディレクトリがありません");
        }

        if (!File.Exists(path2))
        {
            Console.WriteLine("ファイルがありません");
        }
    }
}

存在チェック

11行目はディレクトリの存在チェックをしています。
16行目はファイルの存在チェックをしています。

Directoryクラス

Fileクラス

関連の記事

C# if文のサンプル
C# switch文のサンプル
C# while文とdo while文のサンプル
C# for文とbreakとcontinueのサンプル
C# 配列のサンプル
C# LINQで配列の値を取得するサンプル
C# クラスとコンストラクタのサンプル
C# クラスの継承のサンプル

プログラムでつまったらteratailに登録して質問しましょう!↓↓↓

△上に戻る