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#のIListとは?Listとの違いや使いどころもご紹介

<目次> (1) C#のIListとは?Listとの違いや使いどころもご紹介  (1-1) IListやIList<T>とは?  (1-2) Listとの違い  (1-3) IListの利 …

ASP.NETのbootstrapとは?概要と入手・適用方法のご紹介

  <目次> (1) ASP.NETのbootstrapとは?概要と入手・適用方法のご紹介  (1-1) bootstrapとは?  (1-2) bootstrapの入手方法~プロジェクトへ …

C#のvarとは?型を調べる方法や制約事項についてもご紹介

<目次> (1) C#のvarとは?型を調べる方法や制約事項についてもご紹介  (1-1) C#のvarとは?  (1-2) サンプルプログラム:varの基本動作確認#1  (1-3) サンプルプログ …

.NETで「SystemInvalidOperationException」例外(ZombieCheck、Rollback)の調査記録

<目次> (1) .NETで「SystemInvalidOperationException」例外(ZombieCheck、Rollback)の調査記録  (1-1) エラーメッセージ  (1-2) …

ASP.NETのMVCとは?入門者向けの概要説明やHelloWorld

<目次> (1) ASP.NETのMVCとは?入門者向けの概要説明やHelloWorld  (1-1) ASP.NET MVC5とは?  (1-2) MVCのアーキテクチャ概要  (1-3) ASP. …

  • English (United States)
  • 日本語
Top