VB.NET テキストファイルの読み書きのサンプル

VB.NETのテキストファイルの読み書きのサンプルです。
(確認環境:Microsoft Visual Studio Community 2019)

目次

サンプル StreamReaderクラスで読み込む
  StreamWriterクラスで書き込む

StreamReaderクラスで読み込む

Public Sub New (path As String, encoding As Encoding)

ファイルを1行ずつ読み込むサンプルです。

Imports System.IO
Imports System.Text

Module Module1
	Sub Main()

		Dim path = "D:\Test1\test1.csv"
		Dim list As New List(Of String)
		Dim line As String = ""
		Try
			Using reader As New StreamReader(
				path, Encoding.GetEncoding("Shift_JIS"))

				line = reader.ReadLine()

				While line IsNot Nothing
					list.Add(line) '1行ずつセット
					line = reader.ReadLine()
				End While
			End Using

			For Each b As String In list
				Console.WriteLine(b) '1行ずつ表示
			Next
		Catch e As Exception
			Console.WriteLine(e.Message)
		End Try
	End Sub
End Module

11行目は、StreamReaderのインスタンスを生成しています。
usingステートメントは、配下のブロックの処理が終了したときにリソースを解放するDispose()が呼ばれるのでCloseメソッドは不要です。
14,18行目は、1行読み込んでいます。
15行目は、While文で読み込んだ行がNothingになるまでループします。
17行目は、読み込んだ行をリストにセットしています。
23行目は、1行ずつ表示されます。

StreamWriterクラスで書き込む

Public Sub New (path As String, append As Boolean, encoding As Encoding)
  • ファイルに文字を書き込みます。
  • 上記は、StreamReaderクラスのコンストラクタです。1つめの引数はpathで、2つめの引数はtrueが追記でfalseが新規書き込み、3つめの引数はエンコーディングです。省略するとUTF-8になります。
  • 以下は、MicrosoftのStreamWriterクラスのリンクです。
    https://docs.microsoft.com/ja-jp/dotnet/api/system.io.streamwriter?view=netcore-3.1

リストの値をファイルに書き込むサンプル

Imports System.IO
Imports System.Text

Module Module1
	Sub Main()

		Dim path = "D:\Test1\test2.csv"
		Dim list As New List(Of String)(New String() {"赤", "黄", "青"})

		Try
			Using writer As New StreamWriter(
				path, True, Encoding.GetEncoding("Shift_JIS"))

				For Each line As String In list
					writer.WriteLine(line) '1行ずつ書き込み
				Next
			End Using
		Catch e As Exception
			Console.WriteLine(e.Message)
		End Try
	End Sub
End Module

11行目は、StreamWriterのインスタンスを生成しています。
12行目のTrueは追記するという意味です。Falseにすると都度新規作成されます。
usingステートメントは、配下のブロックの処理が終了したときにリソースを解放するDispose()が呼ばれるのでCloseメソッドは不要です。
14行目は、リストの要素分ループします。
15行目は、WriteLineメソッドで1行ずつ書き込みをしています。

書き込み結果は以下のように3行になります。

赤
黄
青

 

文字列をファイルに書き込むサンプル

改行する場合はvbCrLfを使用します。

Imports System.IO
Imports System.Text

Module Module1
	Sub Main()

		Dim path = "D:\Test1\test2.txt"

		Try
			Using writer As New StreamWriter(
				path, True, Encoding.GetEncoding("Shift_JIS"))

				writer.WriteLine("あいうえお" + vbCrLf + "かきくけこ")

			End Using
		Catch e As Exception
			Console.WriteLine(e.Message)
		End Try
	End Sub
End Module

関連の記事

VB.NET ファイルの一覧を取得するサンプル
VB.NET ファイルの存在/移動/コピー/削除のサンプル
VB.NET フォルダの存在/移動/コピー/削除のサンプル

△上に戻る