C#でファイルの読み書きを行う。
using System; using System.IO; namespace FileLesson { class Program { static void Main(string[] args) { //@を使うことでエスケープなしで文字列を記述可能 var path = @"./data.log"; //usingブロックを使うことでリソースを確実にcloseできる //trueはappend(追記) using (var writer = new StreamWriter(path, true)) { writer.WriteLine(DateTime.Now.ToString()); } //複数のリソースを宣言することもできる //using(var writer=new StreamWriter(パス)) //using(var reader=new StreamReader(パス)){ //readerとwriterを使った処理 //} var file = new FileInfo(path); if (file.Exists) { using (var reader = new StreamReader(path)) { //すべて読み込み //Console.WriteLine(reader.ReadToEnd()); string line; while ((line = reader.ReadLine()) != null) { Console.WriteLine(line); } } } } } }
//文字コードを指定する場合(省略でUTF-8) using (var writer = new StreamWriter(path, true,System.Text.Encoding.GetEncoding("euc-jp"))){} using (var reader = new StreamReader(path, System.Text.Encoding.GetEncoding("shift_jis"))) {}
Q.
ファイルの読み書きを利用して以下のアプリを作成せよ。
[実行例]
操作を入力してください1…体重を入力、2…一覧を見る、3…終了>2
まだデータがありません。
操作を入力してください1…体重を入力、2…一覧を見る、3…終了>1
体重を入力してください>56.4
操作を入力してください1…体重を入力、2…一覧を見る、3…終了>2
2018/10/08 12:11:28 56.4kg
操作を入力してください1…体重を入力、2…一覧を見る、3…終了>1
体重を入力してください>56.6
操作を入力してください1…体重を入力、2…一覧を見る、3…終了>2
2018/10/08 12:11:28 56.4kg
2018/10/08 12:11:41 56.6kg
操作を入力してください1…体重を入力、2…一覧を見る、3…終了>3
アプリを終了します。
using System; using System.Collections.Generic; using System.IO; namespace WeightApp { class Program { static void Main(string[] args) { var path = @"./log.txt"; while(true){ Console.Write("操作を入力してください1...体重を入力、2...一覧を見る、3...終了>"); var select = Console.ReadLine(); switch(select){ case "1": Console.Write("体重を入力してください>"); var weight = double.Parse(Console.ReadLine()); using (var writer = new StreamWriter(path, true)) { writer.WriteLine($"{DateTime.Now.ToString()} {weight}kg"); } break; case "2": var file = new FileInfo(path); if(file.Exists){ using (var reader = new StreamReader(path)) { string line; while ((line = reader.ReadLine()) != null) { Console.WriteLine(line); } } }else{ Console.WriteLine("まだデータがありません。"); } break; default: Console.WriteLine("アプリを終了します。"); return; } } } } }
コメント