我試圖通過讀取部分到一個字節數組來分割一個內存流成塊,但我認爲我有一些根本錯誤的東西。我可以讀取第一個塊,但是當我嘗試讀取其餘的內存流時,即使有更多的字節要讀取,我也會得到索引超出界限。看起來問題在於接收字節緩衝區的大小需要與存儲區一樣大。我需要將代碼轉換爲塊,因爲代碼位於web服務中。將內存分流到bytarray
任何人都知道什麼是錯,此代碼
fb.buffer是MemoryStream的
long bytesLeft = fb.Buffer.Length;
fb.Buffer.Position = 0;
int offset =0;
int BUFF_SIZE = 8196;
while (bytesLeft > 0)
{
byte[] fs = new byte[BUFF_SIZE];
fb.Buffer.Read(fs, offset, BUFF_SIZE);
offset += BUFF_SIZE;
bytesLeft -= BUFF_SIZE;
}
其實,你甚至不需要在這裏使用'Read';只需使用'GetBuffer',然後在循環中,'Buffer.BlockCopy'將數據從後臺緩衝區中移動到更小的緩衝區中 – 2012-04-16 07:58:36