2010年1月29日金曜日

System.IO Name SpaceのStreamReader Class,StreamWriter Classをそれぞれインスタンス化してさらにusing statementを使用して例外処理を記述したMethodを定義し、ファイルに1行ずつ書き込み(WriteLine)(末尾に追加、上書き)、そしてファイルの内容の1行ずつ読み込み(ReadLine)をして、ファイルの内容を表示してみる。

using System;
using System.IO;

class MainClass
{
    // ファイルに書き込む(末尾に追加する)Methodを定義
    static void write1(string text)
    {
        try
        {
            // StreamWriter Classをインスタンス化
            using (var writer 
                = new StreamWriter(text,true
                    System.Text.Encoding.Default))
            {
                /* StreamWriter ClassのWriteLine
                 * Methodで1行ずつtextに書き込む */
                writer.WriteLine("1行目");
                writer.WriteLine("2行目");
                writer.WriteLine("3行目");
            }
        }
        catch (Exception error)
        {
            // 例外の原因の詳細情報を表示
            Console.WriteLine(error.Message);
        }
    }
    // ファイルに書き込む(上書き)
    static void write2(string text)
    {
        try
        {
            using (var writer =
                new StreamWriter(text, false,
                    System.Text.Encoding.Default))
            {
                writer.WriteLine("1:1行目");
                writer.WriteLine("2:2行目");
                writer.WriteLine("3:3行目");
            }
        }
        catch (Exception error)
        {
            Console.WriteLine(error.Message);
        }
    }
    
    // ファイルを1行ずつ読み込むMethodを定義
    static void read(string text)
    {
        try
        {
            // StreamReader Classをインスタンス化
            using (var reader 
                = new StreamReader(text,
                    System.Text.Encoding.Default))
            {
                // string型のlineを宣言
                string line;
                /* textがnullの行までtextを1行ずつline
                 * に読み込み表示 */
                while ((line = reader.ReadLine()) != null)
                {
                    Console.WriteLine(line);
                }
            }
        }
        catch (Exception error)
        {
            // 例外の原因の詳細情報を表示
            Console.WriteLine(error.Message);
        }
    }

    static void Main()
    {
        try
        {
            // Sample.txtという名前のstring型のtextを定義
            string text = "Sample.txt";

            // write Methodの呼び出し
            write1(text);

            /* read Methodの呼び出し
             * 出力値
             * 1行目
             * 2行目
             * 3行目 */
            read(text);

            /* 同様の処理をもう1度行いtrueの場合
             * 末尾に新たな行が書き込まれることを確認 */
            Console.WriteLine("末尾に追加");
            write1(text);

            /* 出力値
             * 1行目
             * 2行目
             * 3行目
             * 1行目
             * 2行目
             * 3行目 */
            read(text);

            // 上書き
            Console.WriteLine("上書き");
            write2(text);
            /* 出力値
             * 1:1行目
             * 2:2行目
             * 3:3行目 */
            read(text);
        }
        catch (Exception error)
        {
            // 例外の原因の詳細情報を表示
            Console.WriteLine(error.Message);
        }
        finally
        {
            // 出力値:終了
            Console.WriteLine("終了");
        }
    }
}

0 コメント:

コメントを投稿