2

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

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”,流中肯定有一些字节。

4

2 回答 2

2

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

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

否则,请确保在读取之前将您MemoryStreamPosition设置为 0。

于 2012-08-14T16:29:38.143 回答
1

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

MemoryStream.Position = 0

或者

MemoryStream.Seek(0, SeekOrigin.Begin)
于 2012-08-14T16:30:13.440 回答