<このサンプルの概要>
ファイルをいろんな方法で読込むサンプルです。いろんな方法とは以下の通りです。
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