2012-08-14 68 views
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',並且流中肯定有一些字節。

回答

1

也許它返回0,因爲你到達流的末尾。確保您在開始閱讀您的信息流之前將位置設置爲0。

MemoryStream.Position = 0 

MemoryStream.Seek(0, SeekOrigin.Begin) 
2

如果你只是試圖讓byte[]數據移出MemoryStream的,你可以調用MemoryStream.ToArray()

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

否則,從中讀取一定要事先設定MemoryStreamPosition 0 。