NonSoft

ファイル入力方法のいろいろ(VB.NET)


 サンプル(ソース/コード)
<このサンプルの概要>
ファイルをいろんな方法で読込むサンプルです。いろんな方法とは以下の通りです。

1.文字コード(SJIS,JIS,EUC,UNICODE,UTF7,UTF8)を指定してテキスト形式でファイルを読込む
  (1)ファイル全部を一括で(一気に)読込む
  (2)ファイルを一行ごとに読込む
  (3)ファイルを一文字ごとに読込む

2.バイナリ形式でファイルで読込む
  (1)ファイル全部を一括で(一気に)読込む
  (2)ファイルを一バイトごとに読込む

文字コードを指定してテキスト形式でファイルを読込む(全部一気に読込む)
文字コードを指定してテキスト形式でファイルを読込む(一行ずつ読込む)
文字コードを指定してテキスト形式でファイルを読込む(一文字ずつ読込む)
バイナリ形式でファイルで読込む(全部一気に読込む)
バイナリ形式でファイルで読込む(一バイトずつ読込む)

ファイル出力の方法のサンプルはこちらです。
ファイル出力方法のいろいろ(VB.NET)

C#.NETのサンプルはこちらです。
ファイル入力方法のいろいろ(C#.NET)

文字コード関係のその他のツールやサンプルはこちらです。
文字コード変換/文字コード判定


''' <summary> ''' テキストファイル入力(ファイル全部を一括で読込む) ''' </summary> ''' <param name="fpath">ファイルPATH</param> ''' <param name="cname">文字コード名</param> ''' <returns>入力した文字列データ</returns> ''' <remarks> ''' <主な文字コード名> ''' SJIS="SHIFT-JIS" ''' JIS="ISO-2022-JP" ''' EUC="EUC-JP" ''' UNICODE="UNICODE" ''' UTF7="UTF-7" ''' UTF8="UTF-8" ''' </remarks> Public Function ReadText_A( _ ByVal fpath As String, ByVal cname As String) As String Dim dt As String = "" Dim sr As System.IO.StreamReader = Nothing Try sr = New System.IO.StreamReader(fpath, _ System.Text.Encoding.GetEncoding(cname)) dt = sr.ReadToEnd() Catch ex As Exception Throw ex Finally If sr Is Nothing = False Then sr.Close() End Try Return dt End Function
''' <summary> ''' テキストファイル入力(ファイルを一行ずつ読込む) ''' </summary> ''' <param name="fpath">ファイルPATH</param> ''' <param name="cname">文字コード名</param> ''' <returns>入力した文字列データ</returns> ''' <remarks> ''' <主な文字コード名> ''' SJIS="SHIFT-JIS" ''' JIS="ISO-2022-JP" ''' EUC="EUC-JP" ''' UNICODE="UNICODE" ''' UTF7="UTF-7" ''' UTF8="UTF-8" ''' </remarks> Public Function ReadText_L( _ ByVal fpath As String, ByVal cname As String) As String Dim dt As String = "" Dim sr As System.IO.StreamReader = Nothing Try sr = New System.IO.StreamReader(fpath, _ System.Text.Encoding.GetEncoding(cname)) Dim ln As String Do ln = sr.ReadLine() If ln Is Nothing = False Then dt &= ln & vbCrLf Loop While (ln Is Nothing = False) Catch ex As Exception Throw ex Finally If sr Is Nothing = False Then sr.Close() End Try Return dt End Function
''' <summary> ''' テキストファイル入力(ファイルを一文字ずつ読込む) ''' </summary> ''' <param name="fpath">ファイルPATH</param> ''' <param name="cname">文字コード名</param> ''' <returns>入力した文字列データ</returns> ''' <remarks> ''' <主な文字コード名> ''' SJIS="SHIFT-JIS" ''' JIS="ISO-2022-JP" ''' EUC="EUC-JP" ''' UNICODE="UNICODE" ''' UTF7="UTF-7" ''' UTF8="UTF-8" ''' </remarks> Public Function ReadText_C( _ ByVal fpath As String, ByVal cname As String) As String Dim dt As String = "" Dim sr As System.IO.StreamReader = Nothing Try sr = New System.IO.StreamReader(fpath, _ System.Text.Encoding.GetEncoding(cname)) Do While sr.Peek() >= 0 Dim c As Char() = New Char(0) {} sr.Read(c, 0, 1) dt &= c(0) Loop Catch ex As Exception Throw ex Finally If sr Is Nothing = False Then sr.Close() End Try Return dt End Function
''' <summary> ''' バイナリファイル入力(ファイル全部を一括で読込む) ''' </summary> ''' <param name="fpath">ファイルPATH</param> ''' <remarks></remarks> Public Function ReadBinary_A(ByVal fpath As String) As Byte() Dim dt As Byte() = New Byte() {} Dim sr As System.IO.Stream = Nothing Dim br As System.IO.BinaryReader = Nothing Try sr = System.IO.File.Open(fpath, _ System.IO.FileMode.Open, _ System.IO.FileAccess.Read) br = New System.IO.BinaryReader(sr) dt = New Byte(sr.Length - 1) {} br.Read(dt, 0, dt.Length) Catch ex As Exception Throw ex Finally If br Is Nothing = False Then br.Close() If sr Is Nothing = False Then sr.Close() End Try Return dt End Function
''' <summary> ''' バイナリファイル入力(ファイルを一バイトずつ読込む) ''' </summary> ''' <param name="fpath">ファイルPATH</param> ''' <remarks></remarks> Public Function ReadBinary_B(ByVal fpath As String) As Byte() Dim dt As Byte() = New Byte() {} Dim sr As System.IO.Stream = Nothing Dim br As System.IO.BinaryReader = Nothing Try sr = System.IO.File.Open(fpath, _ System.IO.FileMode.Open, _ System.IO.FileAccess.Read) br = New System.IO.BinaryReader(sr) Dim fi As New System.IO.FileInfo(fpath) Do While dt.GetLength(0) < fi.Length ReDim Preserve dt(dt.GetLength(0)) br.Read(dt, dt.GetLength(0) - 1, 1) Loop Catch ex As Exception Throw ex Finally If br Is Nothing = False Then br.Close() If sr Is Nothing = False Then sr.Close() End Try Return dt End Function