【C#】ファイルの読み書き ~ StreamWriter / StreamReader ~

■ ファイルの書き込み

既存のファイルに追加書込
 * StreamWriter() の第2引数に、trueを設定

サンプル

ログファイル用クラス作成
#region ログファイル用クラス
public class Log
{
    /// <summary>
    /// ログファイルの書き込み用ストリーム
    /// </summary>
    private StreamWriter writer = null;
    #endregion

    #region ログファイル用クラス・コンストラクタ
    /// <summary>
    /// ログファイル用クラス・コンストラクタ
    /// ログファイルを作成する
    /// </summary>
    public Log()
    {
        string path = System.IO.Path.GetDirectoryName(Application.ExecutablePath);
        string logPath = path + @"\log\;

        // ディレクトリの存在有無を確認する
        if (!Directory.Exists(logPath))
        {
            // ディレクトリを作成する
            Directory.CreateDirectory(logPath);
        }

        // ファイルパス結合
        string logFileFullPath = System.IO.Path.Combine(logPath, "log.txt");

        // ログファイルの存在有無を確認する
        if (File.Exists(logFileFullPath))
        {
            writer = new StreamWriter(
                logFileFullPath, true, System.Text.Encoding.GetEncoding("shift_jis");
        }
        else
        {
            writer = new StreamWriter(
                logFileFullPath, false, System.Text.Encoding.GetEncoding("shift_jis");
        }
    }
    #endregion

    #region ログ出力処理
    /// <summary>
    /// ログファイルに例外などのメッセージを出力する
    /// </summary>
    /// <param name="msg">例外のメッセージ</param>
    public void writeLog(Exception ex)
    {
        writer.WriteLine(System.DateTime.Now.ToString() + " " + ex.Message);
        writer.WriteLine(ex.StackTrace.ToString());
        writer.Close();
    }
    #endregion
    #endregion
}
#endregion

■ ファイルの読み込み

 * StreamReader()

サンプル

using System;
using System.IO;
using System.Text;

class SampleFileRead {
  static void Main() {

    string text = "";

    string path = System.IO.Path.GetDirectoryName(Application.ExecutablePath);
    string logPath = path + @"\log\;

    // ディレクトリの存在有無を確認する
    if (!Directory.Exists(logPath))
    {
       Console.Write("ファイルなしよ");
       return;
    }

    // ファイルパス結合
    string logFileFullPath = System.IO.Path.Combine(logPath, "log.txt");

    // ファイル読み込み
    try
    {
        using (StreamReader sr = new StreamReader(
           logFileFullPath, Encoding.GetEncoding("Shift_JIS"))) {
           text = sr.ReadToEnd();
        }
        Console.Write(text);
     }
     catch (Exception ex)
     {
        Console.Write("Error :" + ex.Message);
     }
  }
}

関連記事

C#】オープン中のファイルにアクセスしたい ~FileShare.ReadWrite~

https://blogs.yahoo.co.jp/dk521123/30552352.html

C#】ごっそりTextファイルにデータ入出力する ~ ReadAllText / WriteAllText ~

https://blogs.yahoo.co.jp/dk521123/20151616.html