| 分類:[.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
|