为什么binaryreader剥离了我文件的第一个字节?

时间:2015-12-07 20:35:10

标签: vb.net binaryreader

所以我正在编写一个程序,它将从vb.net中的二进制文件接收设置。我一次读取25个字节。但是当我检索我的字节数组时,它缺少第一个字节,只有第一个字节。

        Dim bytes(24) As Byte
        Using fs As BinaryReader = New BinaryReader(File.Open(folder.SelectedPath & "\*********", FileMode.Open, FileAccess.Read))
            While fs.Read() > 0
                fs.Read(bytes, 0, bytes.Length)
            End While
            fs.Close()
        End Using

我得到的数组只会遗漏第一个字节,在我的情况下是0x40。为什么会发生这种情况,我该怎么做才能避免这种情况?

1 个答案:

答案 0 :(得分:3)

这是因为fs.Read中的While fs.Read() > 0从流中读取内容,因此流不再位于位置0。

您应该如何做到这一点:

Dim bytes(24) As Byte
Using fs As BinaryReader = New BinaryReader(File.Open(folder.SelectedPath & "\*********", FileMode.Open, FileAccess.Read))

    Dim total_read As Integer

    While total_read < bytes.Length
        Dim read = fs.Read(bytes, total_read, bytes.Length - total_read)
        If read = 0 Then
            Exit While
        End If

        total_read += read
    End While
End Using