簡體   English   中英

C#MemoryStream Write方法將所有0寫入字節數組

[英]C# MemoryStream Write method writing all 0's to byte array

我試圖使用GZipStream類解壓縮文件。 我使用GZipStream的CopyTo方法將解壓縮的數據寫入MemoryStream對象。 復制到MemoryStream對象后,我可以通過查看非公共屬性中的_buffer來查看數據。

當我嘗試寫入字節數組時,問題就開始了。 調用Write()方法會產生一個滿0的字節數組,以及_buffer屬性到0的所有0。 我認為它可能是一個位置或flush()/ close()問題,但這並沒有解決它。 誰能告訴我哪里出錯了?

var input = new MemoryStream(data);
var output = new MemoryStream();

using (var x = new System.IO.Compression.GZipStream(input, System.IO.Compression.CompressionMode.Decompress))
{
    x.CopyTo(output);
}

output.Position = 0;
var bytes = new byte[output.Length];

output.Write(bytes, 0, bytes.Length); //All 0's 
output.Flush();
output.Close(); //still all 0's 

您需要調用Read not Write來獲取數據。

output.Read(bytes, 0, bytes.Length);

你也可以

var bytes = output.ToArray();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM