TotalTech

フリーランスのプログラマーが、技術情報・ガジェット・仕事術について書いてゆきます。資料価値の高い記事を目指しています。コーヒー好きです。

TotalTech

【VB.NET】文字コードを指定して、テキストファイルに書き込む

テキストファイル書き込み

VB.NET文字コードエンコーディング)を指定して、テキストファイルに書き込む方法です。

CSVファイルに書き込み方法もご紹介します。

IO.StreamWriterクラス

ファイルへの書き込みストリームは、System.IO.StreamWriterクラスで定義されています。

StreamWriterクラスのWrite()で、文字列を書き込むことができます。


' ファイルに書き込む文字列
Dim txt As String = Me.TextBox1.text

' エンコーディング
Dim enc_sjis As System.Text.Encoding = System.Text.Encoding.GetEncoding("sjis")

Dim sw As New System.IO.StreamWriter("C:\test1.txt", False, enc_sjis)
sw.Write(txt)
sw.Close()

StreamWriterクラスは、使い終わったら必ずClose()して下さい。

UsingEnd Usingを使って、次のように書くこともできます。この場合、End Usingの際にCloseされるので、明示的にClose()を呼び出す必要はありません。


' ファイルに書き込む文字列
Dim txt As String = Me.TextBox1.Text

' エンコーディング
Dim enc_sjis As System.Text.Encoding = System.Text.Encoding.GetEncoding("sjis")

Using sw As New System.IO.StreamWriter("C:\test1txt", False, enc_sjis)
  sw.Write(txt)
End Using

文字コードエンコーディング)について

文字コードエンコーディング)は、以下のように取得できます。

Shift-JIS


Dim enc_sjis As System.Text.Encoding = System.Text.Encoding.GetEncoding("sjis")

UTF8


Dim enc_utf8 As System.Text.Encoding = System.Text.Encoding.UTF8

EUC


Dim enc_euc As System.Text.Encoding = System.Text.Encoding.GetEncoding("euc-jp")

CSVをファイルに書き込むには

CSVは、テキストファイルと同様に書き込みます。


' CSVファイルに書き込むデータ
Dim data(,) As String = {
  {"社員1", "部署1", "電話番号1"},
  {"社員2", "部署2", "電話番号2"},
  {"社員3", "部署3", "電話番号3"},
  {"社員4", "部署4", "電話番号4"}
  }

' エンコーディング
Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding("shift_jis")

Dim sw As New System.IO.StreamWriter("C:\test1.txt", False, enc)
For i = 0 To data.GetLength(0) - 1
  sw.Write(data(i, 0) & ",")
  sw.Write(data(i, 1) & ",")
  sw.Write(data(i, 2))
  sw.WriteLine()
Next
sw.Close()

社員1,部署1,電話番号1
社員2,部署2,電話番号2
社員3,部署3,電話番号3
社員4,部署4,電話番号4

StreamWriterクラスのWriteLine()は、改行コードを書き込みます。

まとめ

以上、【VB.NET文字コードを指定して、テキストファイルに書き込む、でした。

よく出てくる処理なので、覚えておくと良いですね。

テキストファイルの読み込みについては