Back to Top

Daily Archives: 2016年3月21日

VB.NET 文字列とバイト配列の変換をする

文字列からバイト配列(Byte())もしくは、バイト配列から文字列への変換について記載します。

変換には、System.Text.Encoding.GetEncodingメソッドを使用します。

バイト型配列から文字列に変換する

Dim str As String

'【Shift JIS から変換する】
str = System.Text.Encoding.GetEncoding(932).GetString(bytesData)
'または
str = System.Text.Encoding.GetEncoding("sjis").GetString(bytesData)

'【JISコード から変換する】
str = System.Text.Encoding.GetEncoding(50220).GetString(bytesData)
'または
str = System.Text.Encoding.GetEncoding("iso-2022-jp").GetString(bytesData)

'【EUCコード から変換する】
str = System.Text.Encoding.GetEncoding(51932).GetString(bytesData)
'または
str = System.Text.Encoding.GetEncoding("euc-jp").GetString(bytesData)

'【UTF-8コード から変換する】
str = System.Text.Encoding.GetEncoding(65001).GetString(bytesData) 
'または
str = System.Text.Encoding.GetEncoding("utf-8").GetString(bytesData)
'または
str = System.Text.Encoding.UTF8.GetString(bytesData)

※Encodingには、同じ変換でも書き方が数通りあります。上記以外にも文字コードはあります。

 

文字列からバイト型配列に変換する

Dim str As String = "文字列です。"
Dim bytesData As Byte()

'【Shift JIS に変換する】
bytesData = System.Text.Encoding.GetEncoding("sjis").GetBytes(str)

'【JISコード に変換する】
bytesData = System.Text.Encoding.GetEncoding("iso-2022-jp").GetBytes(str)

'【EUCコード に変換する】
bytesData = System.Text.Encoding.GetEncoding("euc-jp").GetBytes(str)

'【UTF-8コード に変換する】
bytesData = System.Text.Encoding.UTF8.GetBytes(str)

 

VB.NET テキストファイルの読み込み

テキストファイルの読み込み方法について記載します。

File.ReadAllLines メソッドを使用し Stringとして読み込む

Dim sFilePath As String = "C:\work\myfile.txt"

'テキストファイルを全て読み込む
Dim str As String = System.IO.File.ReadAllText(sFilePath, System.Text.Encoding.Default)

 

File.ReadAllLines メソッドを使用し 文字列配列に読み込む

Dim sFilePath As String = "C:\work\myfile.txt"

'行ごとに配列として、テキストファイルを読み込む
Dim lines As String() = System.IO.File.ReadAllLines(sFilePath, System.Text.Encoding.Default)

 

StreamReader.ReadToEnd メソッドを使用し Stringとして読み込む

Dim sr As New System.IO.StreamReader("C:\work\myfile.txt", System.Text.Encoding.Default)
Dim str As String = sr.ReadToEnd()
sr.Close()

MessageBox.Show(str)

 

StreamReader.ReadLine メソッドを使用し List<Strung>に読み込む

Dim lines As New List(Of String)
Dim sr As New System.IO.StreamReader("C:\work\myfile.txt", System.Text.Encoding.Default)

While (SR.Peek() >= 0)
    Dim s As String = SR.ReadLine()
    lines.Add(s)
End While
SR.Close()