|
分類:[.NET 全般]
以下のコードでSingle配列をバイナリファイルに書き込みを行いました。
Sub OUT()
Dim a(Num) As Single
Using stream As Stream = New FileStream(Path, FileMode.Create)
Using writer As New BinaryWriter(stream)
For j As Integer = 1 To Num
writer.Write(a(j))
Next j
End Using
End Using
End Sub
その後、以下のコードで読み込みを行ったところ、元のデータと一致するデータを取得することができました。
Sub IN1()
Dim a(Num) As Single
Using stream As Stream = File.OpenRead(Path)
Using reader As New BinaryReader(stream)
For i = 1 To Num
a(i) = reader.ReadSingle()
Next i
End Using
End Using
End Sub
一方で、以下のコードのように、一度バイト配列に読み込んでから
読み込もうとするとなぜか元のデータと一致しません。
何が問題でしょうか?
Sub IN2()
Dim a(Num) As Single
Dim fs0 As New FileStream(Path, FileMode.Open, FileAccess.Read)
Dim bs(CInt(fs0.Length - 1)) As Byte
fs0.Read(bs, 0, fs0.Length)
fs0.Close()
For i = 0 To Num - 1
a(i + 1) = BitConverter.ToSingle(bs, i * 4)
Next i
End Sub
|