.NET TIPS

テキスト・ファイルの内容を簡単に読み込むには?[2.0のみ、C#、VB]

デジタルアドバンテージ 遠藤 孝信
2006/01/13

 「TIPS:テキスト・ファイルの内容を読み込むには?」では、テキスト・ファイルを文字列やコレクションに読み込む方法について解説した。そこでも解説されているように、テキスト・ファイルの読み込みには、ファイルのオープン、読み込み、クローズの処理が必要となる。

 .NET Framework 2.0では、これらの処理を1つのメソッド呼び出しで可能とするReadAllTextメソッドとReadAllLinesメソッドがFileクラス(System.IO名前空間)に追加されている。

File.ReadAllTextメソッドによる文字列への読み込み

 テキスト・ファイル全体を1つの文字列に読み込む場合には、FileクラスのReadAllTextメソッドが利用できる。以下にこれを使ったサンプル・プログラムを示す。

// readalltext.cs

using System;
using System.IO;

class ReadAllText {
  static void Main() {

    // シフトJISのファイルの読み込み
    string text1 = File.ReadAllText("shiftjis.txt",
      System.Text.Encoding.GetEncoding("Shift_JIS"));


    // UTF-8のファイルの読み込み
    string text2 = File.ReadAllText("utf8.txt");
  }
}

// コンパイル方法:csc readalltext.cs
ReadAllTextメソッドを使用したC#のサンプル・プログラム(readalltext.cs)
 
' readalltext.vb

Imports System
Imports System.IO

Class ReadAllText
  Shared Sub Main()

    ' シフトJISのファイルの読み込み
    Dim text1 As String = File.ReadAllText("shiftjis.txt", _
      System.Text.Encoding.GetEncoding("Shift_JIS"))

    ' UTF-8のファイルの読み込み
    Dim text2 As String = File.ReadAllText("utf8.txt")

  End Sub
End Class

' コンパイル方法:vbc readalltext.vb
ReadAllTextメソッドを使用したVBのサンプル・プログラム(readalltext.vb)

 シフトJISファイルの読み込みの例で示しているように、テキスト・ファイルの文字コードがUTF-8以外の場合には、読み込み時に使用されるエンコーディング(System.Text名前空間のEncodingオブジェクト)を第2パラメータに指定する。第1パラメータは読み込むテキスト・ファイルのパス名である。

File.ReadAllLinesメソッドによる文字列配列への読み込み

 読み込んだテキストを1行ずつ処理したい場合には、1つの文字列変数ではなく、各行を要素とする文字列配列として読み込めた方が便利である。これを行ってくれるのがFileクラスのReadAllLinesメソッドだ。

 以下にReadAllLinesメソッドを使ったサンプル・プログラムを示す。パラメータの意味は上述したReadAllTextメソッドと同じである。メソッドの戻り値は文字列の配列となる。

// readalllines.cs

using System;
using System.IO;

class ReadAllLines {
  static void Main() {

    // シフトJISのファイルの読み込み
    string[] lines1 = File.ReadAllLines("shiftjis.txt",
      System.Text.Encoding.GetEncoding("Shift_JIS"));

    // UTF-8のファイルの読み込み
    string[] lines2 = File.ReadAllLines("utf8.txt");
  }
}

// コンパイル方法:csc readalllines.cs
ReadAllLinesメソッドを使用したC#のサンプル・プログラム(readalllines.cs)
 
' readalllines.vb

Imports System
Imports System.IO

Class ReadAllLines
  Shared Sub Main()

    ' シフトJISのファイルの読み込み
    Dim lines1 As String() = File.ReadAllLines("shiftjis.txt", _
      System.Text.Encoding.GetEncoding("Shift_JIS"))

    ' UTF-8のファイルの読み込み

    Dim lines2 As String() = File.ReadAllLines("utf8.txt")

  End Sub
End Class

' コンパイル方法:vbc readalllines.vb
ReadAllLinesメソッドを使用したVBのサンプル・プログラム(readalllines.vb)

 これら2つのメソッドを自分で実装するのは容易であるが、頻繁に利用する定型処理であるため、1つのメソッドでまとめられているのは便利である。End of Article

利用可能バージョン:.NET Framework 2.0のみ
カテゴリ:クラス・ライブラリ 処理対象:テキスト・ファイル
使用ライブラリ:Fileクラス(System.IO名前空間)
使用ライブラリ:Encodingクラス(System.Text名前空間)
関連TIPS:テキスト・ファイルの内容を読み込むには?

この記事と関連性の高い別の.NET TIPS
テキスト・ファイルの内容を読み込むには?
テキスト・ファイルの内容を簡単かつ効率的に読み込むには?
文字列やテキストをHTMLエンコードするには?
ファイルにテキストを書き込むには?
テキスト・ファイルの内容を簡単に書き込むには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

TechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH