将内存流读入字节数组

时间:2012-08-14 16:26:53

标签: .net vb.net

我在以块的形式读取内存流时遇到了一些麻烦。

Dim ByteBuffer(4096) As Byte

While ProcessedBytes < FileLength

    BytesRead = MemoryStream.Read(ByteBuffer, 0, 4096)
    'Write the buffer to an output stream
    ProcessedBytes += BytesRead

End While

'MemoryStream.Read(ByteBuffer,0,4096)'总是返回零。我查看了'MemoryStream.Length',并且流中肯定有一些字节。

2 个答案:

答案 0 :(得分:2)

如果您只是想从byte[]中获取MemoryStream数据,可以致电MemoryStream.ToArray()

Dim ByteBuffer() as Byte = MemoryStream.ToArray()

否则,请务必在阅读之前将MemoryStream的{​​{3}}设为0.

答案 1 :(得分:1)

也许它返回0因为你到达了流的末尾。确保在开始阅读流之前将位置设置为0.

MemoryStream.Position = 0

MemoryStream.Seek(0, SeekOrigin.Begin)