C#でファイルの読み込み/書き出し
今回はC#で行う、ファイルの読み込み/書き出しについてまとめてみました。
ファイルの読み込み(1行づつ)
// 結果格納変数 StringBuilder strBuff = new StringBuilder(); string result = string.Empty; // ファイルの存在チェック if (System.IO.File.Exists(@"C:\hogehoge.txt")) { // StreamReaderでファイルを読み込む System.IO.StreamReader reader = (new System.IO.StreamReader(@"C:\hogehoge.txt", System.Text.Encoding.GetEncoding("shift_jis"))); // 読み込みできる文字がなくなるまで繰り返す while (reader.Peek() >= 0) { // ファイルを 1 行ずつ読み込む strBuff = reader.ReadLine(); // 読み込んだものを追加で格納する result += strBuff + System.Environment.NewLine; } // 閉じる (オブジェクトの破棄) reader.Close(); } // 結果を表示する Message = result;
ファイルの読み込み(全行を1回で読み込む)
// 結果格納変数 string result = string.Empty; // ファイルの存在チェック if (System.IO.File.Exists(@"C:\hogehoge.txt")) { // StreamReaderでファイルを読み込む System.IO.StreamReader reader = (new System.IO.StreamReader(@"C:\hogehoge.txt", System.Text.Encoding.GetEncoding("shift_jis"))); // ファイルの最後まで読み込む result = reader.ReadToEnd(); // 閉じる (オブジェクトの破棄) reader.Close(); } // 結果を表示する Message = result;
ファイルの読み込みポイント
ファイルが存在しない場合にエラーで落ちてしまうので、”if (System.IO.File.Exists(@"C:\hogehoge.txt")) {” でファイルの存在チェックを行います。
ファイルの書き出し(上書き)
// StreamWriter でファイルを初期化 System.IO.StreamWriter sw = new System.IO.StreamWriter(@"C:\hogehoge.txt", false, System.Text.Encoding.GetEncoding("shift_jis")); // hogehoge.txtに書き込まれていても、上書きで書き出す sw.Write("今日は沢山歩きました。\r\n"); // 閉じる (オブジェクトの破棄) sw.Close();
ファイルの書き出し(追記)
// StreamWriter でファイルを初期化 System.IO.StreamWriter sw = new System.IO.StreamWriter(@"C:\hogehoge.txt", true, System.Text.Encoding.GetEncoding("shift_jis")); // hogehoge.txtに書き込まれている行末に、追加で書き出す sw.Write("今日は沢山歩きました。\r\n"); // 閉じる (オブジェクトの破棄) sw.Close();
ファイルの書き出しポイント
ファイルの書き出し(上書き)と、ファイルの書き出し(追記)の違いは、
new System.IO.StreamWriter(@"C:\hogehoge.txt", false, System.Text.Encoding.GetEncoding("shift_jis"));
の、true/falseの違いだけです。