Rainbow Planet

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#のabstract(抽象クラス)とは?継承やoverrideの手順や使い方をご紹介

<目次> (1) C#の抽象クラスやabstractとは?意味や使い方をご紹介  (1-1) 抽象クラスとは?  (1-2) 抽象クラスの使い方   (1-2-1) 抽象クラスの定義   (1-2-2 …

C#のデリゲートが分からない・・を解決!初心者向けになるべく分かり易く説明してみた

<目次> (1) C#のデリゲートが分からない・・を解決!初心者向けになるべく分かり易く説明してみた  (1-1) デリゲートとは?「関数へのポインタ」だけでは説明しきれない・・  (1-2) デリゲ …

Xamarin.Formsのプロジェクトの構成について~各ファイルの役割や概要について~

<目次> (1) Xamarin.Formsのプロジェクトの構成について  (1-1) プロジェクト構造の概要  (1-2) プロジェクトの初期ファイルの一覧 (1) Xamarin.Formsのプロ …

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

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

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

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

  • English (United States)
  • 日本語
Top