| |
|
.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つのメソッドでまとめられているのは便利である。
利用可能バージョン:.NET Framework 2.0のみ
カテゴリ:クラス・ライブラリ 処理対象:テキスト・ファイル
使用ライブラリ:Fileクラス(System.IO名前空間)
使用ライブラリ:Encodingクラス(System.Text名前空間)
関連TIPS:テキスト・ファイルの内容を読み込むには? |
|
|
generated by
|
|
TechTargetジャパン
キャリアアップ

**先週の人気講座ランキング**
〜 Android編 〜