TEXT File の入力

C# の StreamReader で TEXT File を入力してコンソール画面に表示します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. プロジェクトのフォルダーに次のファイルを格納して下さい。
    ファイル名 説明
    TextRead.cs TEXT 入力
  2. TEXT File とは、C言語やC#のソースプログラムのように、文字コードを使って書かれたファイルのことを言います。
    TEXT File はメモ帳や Text Editor を使って簡単に読んだり書いたりすることが出来ます。
    ところが、文字コードなるものが曲者で (^_^;) これが関係すると一筋縄では行きません。
    例えはアラビア語で書かれている TEXT File を日本語の Windows System で読めるとは思えないでしょう。
    国が違えば読めないのは当然としても、日本語でもコード体系が異なると読めないのです。
    Windows System で使われている標準的なコードは Shift JIS ですが、これ以外にも Unicode や EUC や EBCDIC など、 多くのコードが存在します。
    文字コードの詳しい説明は Store GuidProgram Guid を参照して下さい。
    C#ではコード変換の機能が強化されていて、現在使われている殆どのコードに対応できるようになっています。
  3. このプログラムを実行するときは、事前に "C:\\data\\" のフォルダーを作成して、説明.txt のファイルを格納しておいて下さい。
    もちろん実行環境に合わせて、下記の行を修正してもかまいません。
    "C:\\data\\説明.txt"
  4. Encoding.GetEncoding("Shift_JIS") は Shift_JIS で書かれているコードを内部コードに変換して読み込みます。
    説明.txt のファイルは、内容は何でも良いのですが Shift_JIS で作成して下さい。
    メモ帳などで普通に保存すれば Shift_JIS で書かれます。
    (Windows10 ではメモ帳の文字コードの規定値が utf-8(BOM 無し)になっています)
  5. reader.ReadLine() では、一度に改行コード(\r\n)まで入力され、行末の改行コードは削除されます。
    reader.ReadToEnd() で入力すると、全 TEXT が一度に入力されます。
  6. ソースコード(TextRead.cs)です。
    /*★ TEXT File を入力して Console に表示    前田 稔 ★*/
    using System;
    using System.IO;    // for File, StreamReader
    using System.Text;  // for Encoding
    
    class TextFileRead
    {
        public static int Main()
        {
            string file_name = "C:\\data\\説明.txt";
            if (!File.Exists(file_name)) return -1; //ファイルの有無をチェック
            StreamReader reader = new StreamReader(file_name,Encoding.GetEncoding("Shift_JIS"));
            string A ;
            while((A=reader.ReadLine()) != null)
            {
                Console.WriteLine(A);
            }
            reader.Close();
            return 0;
        }
    }
    
  7. C/C++ でも同様のプログラムを作成しています。
    Text File の入力 を参照して下さい。
    C# の Text File の出力は TEXT File の出力 を参照して下さい、
    C# のアプリの例は Text Editor の開発 を参照して下さい、

【解説】

  1. reader.ReadToEnd() で入力すると、全 TEXT が一度に入力されます。
    また改行コードもそのまま格納されます。
    reader.ReadToEnd() を使って TEXT File を入力します。
    /*★ TEXT File を入力して Console に表示    前田 稔 ★*/
    using System;
    using System.IO;    // for File, StreamReader
    using System.Text;  // for Encoding
    
    class TextFileRead
    {
        public static int Main()
        {
            string file_name = "C:\\data\\Test\\utf8.txt";
            if (!File.Exists(file_name)) return -1; //ファイルの有無をチェック
            StreamReader reader = new StreamReader(file_name,Encoding.GetEncoding("utf-8"));
            string A ;
            A=reader.ReadToEnd();
            reader.Close();
            Console.Write(A);
            Console.ReadLine();
            return 0;
        }
    }
    
    コンソール画面の実行結果です。
    C:\DATA\C#\BAT\Prog1>TextReadToend
    0123456789
    abcdefg
    ABCDEFG
    
    BOM が設定されていない utf8.txt です。
    テスト用のテキストファイルです。
    改行コードは 0D0A です。
    
  2. 次の設定は "Shift_JIS" でタイプされた Text File を入力する場合です。
    StreamReader reader = new StreamReader(file_name,Encoding.GetEncoding("Shift_JIS"));
    
    Encoding を省略すると Unicode(utf-16 & utf-8 に対応) になります。
    Encoding を省略して "Shift_JIS" を読み込むと文字化けするので確かめてみて下さい。
    明白に Unicode(utf-16) を設定するときは、次のようになります。
    StreamReader reader = new StreamReader(file_name,Encoding.GetEncoding("utf-16"));
    
  3. 2013/09 現在、次の環境で自動生成した C# のソースコードは UTF-8 で保存されました。
    ・Windows8.1 評価版
    ・Microsoft Visual Studio Professional 2013 Preview - 日本語
    UTF-8 コードのときは、次のように指定します。
    //Encoding.GetEncoding("Shift_JIS"));<BR>
    Encoding.GetEncoding("utf-8"));<BR>
    
    Windows10 の Text File 文字コードの指定は 文字コードを指定して入力 を参照して下さい。
  4. Open File Dialog からファイルを選択する方法は「Tool の使い方/Common Dialog」を参照して下さい。

超初心者のプログラム入門(C# Frame Work)