我在以块的形式读取内存流时遇到了一些麻烦。
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',并且流中肯定有一些字节。
答案 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)