C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■83380 / )  Single配列の読み書きに関して
□投稿者/ ジングルベル (1回)-(2017/03/20(Mon) 10:17:08)

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


返信 編集キー/


管理者用

- Child Tree -