次の方法で共有


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

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

拡張文字を含むファイルから読み取る場合は、ファイルエンコードを指定する必要があります。

ファイルを一度に 1 行のテキストで読み取る場合は、OpenTextFileReader オブジェクトの My.Computer.FileSystem メソッドを使用します。 OpenTextFileReader メソッドが StreamReader オブジェクトを返します。 ReadLine オブジェクトの StreamReader メソッドを使用して、一度に 1 行ずつファイルを読み取ることができます。 EndOfStream オブジェクトの StreamReader メソッドを使用して、ファイルの末尾をテストできます。

テキスト ファイルから読み取る方法

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

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

エンコードされたテキスト ファイルから読み取る

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

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

堅牢なプログラミング

次の条件が原因で例外が発生する可能性があります。

  • パスは、長さ 0 の文字列、空白のみを含む、無効な文字が含まれている、またはデバイス パス (ArgumentException) のいずれかの理由で無効です。

  • パスは Nothing (ArgumentNullException) であるため無効です。

  • ファイルが存在しません (FileNotFoundException)。

  • ファイルが別のプロセスで使用されているか、I/O エラーが発生します (IOException)。

  • パスがシステム定義の最大長 (PathTooLongException) を超えています。

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

  • バッファーに文字列を書き込むのに十分なメモリがありません (OutOfMemoryException)。

  • ユーザーには、パスを表示するために必要なアクセス許可がありません (SecurityException)。

ファイルの名前に基づいてファイルの内容を決定しないでください。 たとえば、Form1.vbファイルが Visual Basic ソース ファイルでない場合があります。

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

こちらも参照ください