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 path1 = "D:\Test1\test1.csv"
		Dim list1 As New List(Of String)
		Dim line As String = ""
		Try
			Using reader1 As New StreamReader(
				path1, Encoding.GetEncoding("Shift_JIS"))

				line = reader1.ReadLine()

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

			For Each b As String In list1
				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行目は、1行読み込んでいます。
15行目は、While文で読み込んだ行がNothingになるまでループします。
23行目は、1行ずつ表示されます。

StreamWriterクラスで書き込む

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

ファイルを書き込むサンプルです。
リストから1行ずつ書き込みます。

Imports System.IO
Imports System.Text

Module Module1
	Sub Main()

		Dim path1 = "D:\Test1\test2.csv"
		Dim list1 As New List(Of String)(New String() {"赤", "黄", "青"})
		Dim line As String = ""
		Try
			Using writer1 As New StreamWriter(
				path1, True, Encoding.GetEncoding("Shift_JIS"))

				For Each b As String In list1
					writer1.WriteLine(b) '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行ずつ書き込みをしています。

関連の記事

VB.NET ファイルの一覧を取得するサンプル
VB.NET ファイル操作のサンプル(存在/移動/削除他)
VB.NET フォルダの作成/削除等のサンプル

△上に戻る