C#(ファイルの読み書き)

C#

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

コメント

タイトルとURLをコピーしました