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;
}
}
}
}
}

コメント