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.ToArray()MemoryStreamを呼び出すことができます。

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

それ以外の場合は、から読み取る前に、必ずMemoryStream位置を0に設定してください。

于 2012-08-14T16:29:38.143 に答える
1

ストリームの最後に到達したため、0が返される可能性があります。ストリームの読み取りを開始する前に、必ず位置を0に設定してください。

MemoryStream.Position = 0

また

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