方法 : Visual Basic でテキスト ファイルを読み取る

更新 : 2007 年 11 月

My.Computer.FileSystem オブジェクトの ReadAllText メソッドを使用すると、テキスト ファイルを読み取ることができます。ファイルの内容が ASCII や UTF-8 などのエンコーディングを使用している場合、ファイル エンコーディングを指定できます。

読み取るファイルで拡張文字が使用されている場合、ファイル エンコーディングを指定する必要があります。

テキスト ファイルを読み取るには

  • My.Computer.FileSystem オブジェクトの ReadAllText メソッドを使用して、ファイルのパスを指定し、テキスト ファイルの内容を文字列に読み取ります。次の例は、test.txt の内容を文字列に読み取り、メッセージ ボックスに表示します。

    Dim fileReader As String
    fileReader = My.Computer.FileSystem.ReadAllText("C:\test.txt")
    MsgBox(fileReader)
    

エンコードされているテキスト ファイルを読み取るには

  • My.Computer.FileSytem オブジェクトの ReadAllText メソッドを使用して、ファイルのパスとファイル エンコードの種類を指定し、テキスト ファイルの内容を文字列に読み取ります。次の例は、UTF32 ファイルである test.txt の内容を文字列に読み取り、メッセージ ボックスに表示します。

    Dim fileReader As String
    fileReader = My.Computer.FileSystem.ReadAllText("C:\test.txt", _
       System.Text.Encoding.UTF32)
    MsgBox(fileReader)
    

堅牢性の高いプログラム

次の条件を満たす場合は、例外が発生する可能性があります。

  • パスが無効である場合。1) 長さが 0 の文字列である、2) 空白だけが含まれている、3) 無効な文字が含まれている、4) デバイス パスである、のいずれかの理由が考えられる (ArgumentException)。

  • パスが Nothing であるため、有効でない場合 (ArgumentNullException)。

  • ファイルが存在しない場合 (FileNotFoundException)

  • 他のプロセスがファイルを使用しているか、または I/O エラーが発生した場合 (IOException)。

  • パスがシステムで定義されている最大長を超えている場合 (PathTooLongException)。

  • パス内のファイル名またはディレクトリ名にコロン (:) が含まれているか、または形式が無効である場合 (NotSupportedException)。

  • 文字列をバッファに書き込むための十分なメモリがない場合 (OutOfMemoryException)。

  • ユーザーがパスを参照するのに必要なアクセス許可がない場合 (SecurityException)。

ファイル名からファイルの内容を判断しないでください。たとえば、Form1.vb というファイルは Visual Basic のソース ファイルではない可能性もあります。

アプリケーションでデータを使用する前に、入力をすべて検証してください。ファイルの内容が予想どおりでないことがあり、ファイルの内容を読み取るメソッドが失敗する可能性があります。

参照

処理手順

方法 : Visual Basic でコンマ区切りのテキスト ファイルを読み取る

方法 : Visual Basic で固定幅のテキスト ファイルを読み取る

方法 : Visual Basic で複数の書式を持つテキスト ファイルを読み取る

トラブルシューティング : テキスト ファイルの読み取りと書き込み

チュートリアル : Visual Basic によるファイルとディレクトリの操作

概念

ファイル エンコーディング

参照

My.Computer.FileSystem オブジェクト

My.Computer.FileSystem.ReadAllText メソッド

その他の技術情報

Visual Basic でのファイルの読み取り