これらのメソッドのセットで何が問題になることがありますか?.net gzip解凍ストリームの問題
byte[] bytes;
using (var memory_stream = new MemoryStream())
using (var gzip_stream = new GZipStream(memory_stream, CompressionMode.Compress))
{
var buffer = Encoding.Default.GetBytes("Hello nurse!");
gzip_stream.Write(buffer, 0, buffer.Length);
bytes = memory_stream.ToArray();
}
int total_read = 0;
using (var input_stream = new MemoryStream(bytes))
using (var gzip_stream = new GZipStream(input_stream, CompressionMode.Decompress, true))
{
int read;
var buffer = new byte[4096];
while ((read = gzip_stream.Read(buffer, 0, buffer.Length)) != 0) {
total_read += read;
}
}
Debug.WriteLine(bytes);
Debug.WriteLine(total_read);
gzipStrは有効なGzippedストリームです(GzipStream()圧縮で正常に圧縮できます)。
なぜtotal_readは常に0ですか?ストリームを解凍するgzipストリームですか?私は何か間違っているのですか?
私はここで間違っていますか?
[OK]を、私はgzipのストリームをフラッシュしてあなたのポイントを持って、Encoding.Default/Encoding.UTF8を使用しています。 .. B私の問題はgzip圧縮とは決して関連しませんでしたが、それはうまくいきます... 私はあなたの修正を行いましたが、合計読み取り_stills_ 0 ですので、主な問題が続く。 – kementeus
私はちょうど私が使っているコードを投稿しました。 Flushを取り出すと0になり、それを入れると12になります。私はEncoding.UTF8が副次的な問題であることに同意しますが、エンコードには常に注意する価値があります。 –