【发布时间】:2016-07-12 11:12:40
【问题描述】:
我正在测试一些代码。我坚持以下。我写过什么text,压缩流的长度总是10?我做错了什么?
var inStream = new MemoryStream();
var inWriter = new StreamWriter(inStream);
str text = "HelloWorldsasdfghj123455667880fgsjfhdfasdferrbvbyjun hbwecwcxqsz edcrgvebrjnuj5juerqwetsrgfggshurhtnbvzkfjhguhgrgal;kjhao;rhl;zkfhg;aorihghg;oahrgarhguhh';aaeaeiaijeihjrhfidfhfidfidhh953453453";
inWriter.WriteLine(text);
inWriter.Flush();
inStream.Position = 0;
var outStream = new MemoryStream();
var compressStream = new GZipStream(outStream, CompressionMode.Compress);
inStream.CopyTo(compressStream);
compressStream.Flush();
outStream.Flush();
compressStream.Flush();
outStream.Position = 0;
Console.WriteLine(outStream.Position);
Console.WriteLine(outStream.Length);
【问题讨论】:
-
@MethodMan 目前我没有关闭任何东西。不应该是这样的
-
但是@MethodMan 是对的——在你关闭它之前,压缩流并不知道你已经完成了写入——所以无法完成它的压缩算法。
-
@PhillipH 通过 using 和 leaveOpen,现在可以正常工作了。我正要发布一个自我答案。相反,您可以发布您的评论作为答案。
标签: c# gzipstream