Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

C#

C#でファイルを1行ずつ読み込み処理を行うサンプルプログラム

投稿日:2020年12月13日 更新日:

<目次>

(1) C#でファイルを読み込み処理を行うサンプルプログラム
 (1-1) 構文
 (1-2) サンプルプログラム
 (1-3) サンプルプログラムの補足

(1) C#でファイルを読み込み処理を行うサンプルプログラム

(1-1) 構文

どこまでを構文とするかは議論の余地ありますが、一旦今回は以下を構文としてご紹介します。

(構文)

using (StreamReader sr = new StreamReader([読み込みファイルパス], [エンコーディング方式]))
{
  while (sr.EndOfStream == false)
  {
    string line = sr.ReadLine();
  }
}

 

①usingステートメントについて
最初の「using」ステートメントを使う事で、「using」の範囲を抜けると自動でusingの括弧「()」内で指定したオブジェクトを自動で破棄してくれます(オブジェクトが有効な範囲の境界を指定している)。
 
C#や.NETにおいてはガーベッジコレクタによってリソース管理が行われており、「マネージドリソース」(主に.NET Framework)に関しては自動でメモリの割り当てや解放が行われますが、DB接続などは自動では行われないため、明示的にusingステートメントを使って使用範囲を明示する必要があります。
 
②StreamReaderクラス
バイトストリームからの文字の読み書きに使われるクラスで、指定したエンコード方式での読み取りができます(例:Encoding.UTF8)。
 
③while (sr.EndOfStream == false)
「sr.EndOfStream」が「ファイルの終わりかどうか?」の情報です。これが「false」という事は「まだ続きの行がある」という意味になります。whileなので、続きが無くなるまで読み続けます。
 

(1-2) サンプルプログラム

(サンプルプログラム)

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ReadFileSample
{
 class Program
 {
  static void Main(string[] args)
  {
   //###(1)読み込むファイルのパスを指定
   //### (例) string filepath = "C:\\Temp2\\IT0196\\Sample.log";
   string filepath = "[ご自身の読み込むファイルパス]";

   //###(2)tryの中にファイル読み込み処理を記述し、IOExceptionが発生したらcatch
   try
   {
    //###(3)StreamReaderクラスを使ってファイルを読み込み
    //### (usingステートメントを使うことでオブジェクトが有効な範囲の境界を指定)
    using (StreamReader sr = new StreamReader(filepath, Encoding.UTF8))
    {

     //###(4)ファイルの終わりに達するまでの間、while内の処理を繰り返し
     while (sr.EndOfStream == false)
     {
      //###(5)行の読み込み&コンソール表示
      string line = sr.ReadLine();
      Console.WriteLine(line);
     }
    }
   }
   //###(6)例外処理
   catch (IOException e)
   {
    Console.WriteLine("Exception has occured");
    //例外の内容をコンソール出力
    Console.WriteLine(e.Message);
   }
  }
 }
} 

(図121⇒実行結果:正常パターン)

(図122⇒実行結果:例外パターン)

目次にもどる

(1-3) サンプルプログラムの補足

(補足)
今回のプログラムは「コンソールアプリ (.NET Framework)」を使って作成しました。

(図132)

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-C#

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

C#でファイルの存在チェックを行う方法+サンプルプログラムをご紹介

<目次> (1) C#でファイルの存在チェックを行う方法  (1-1) 構文  (1-2) サンプルプログラム (1) C#でファイルの存在チェックを行う方法 (1-1) 構文 (構文) if (!F …

C#のコンソールアプリで引数を与えて実行する方法

<目次> (1) C#のコンソールアプリで引数を与えて実行する方法  (1-1) 設定箇所  (1-2) サンプルプログラム  (1-3) サンプルプログラムの補足 (1) C#のコンソールアプリで引 …

C#でフォルダ内のファイルの一覧を取得する方法

<目次> (1) C#でフォルダ内のファイルの一覧を取得する方法  (1-1) 方法①構文  (1-2) 方法①サンプルプログラム  (1-3) 方法②構文  (1-4) 方法②サンプルプログラム ( …

C#のvarの使いどころは?初めての方に向けてサンプルプログラムを使ってご紹介

<目次> (1) C#のvarの使いどころは?初めての方に向けてサンプルプログラムを使ってご紹介  (1-1) ArrayListに異なるデータ型が混在しているパターン  (1-2) LINQのクエリ …

Xamarin.Formsのプロジェクトを新規作成する手順

<目次> (1) Xamarin.Formsのプロジェクトを新規作成する手順  (1-1) Xamarin.Formsプロジェクトの作成   (1-1-1) プロジェクト新規作成   (1-1-2) …

  • English (United States)
  • 日本語
Top