C# 为什么压缩流的长度总是10?
我正在测试一些代码。我被以下问题困住了。无论我写什么C# 为什么压缩流的长度总是10?,c#,gzipstream,C#,Gzipstream,我正在测试一些代码。我被以下问题困住了。无论我写什么文本,压缩流的长度总是10?我做错了什么 var inStream = new MemoryStream(); var inWriter = new StreamWriter(inStream); str text = "HelloWorldsasdfghj123455667880fgsjfhdfasdferrbvbyjun hbwecwcxqsz edcrgvebrjnuj5juerqwetsrgfggshurhtnbvzkfjhg
文本
,压缩流的长度总是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使用并保持打开状态,现在它工作了。我正要发布一个自我回答。相反,您可以将您的评论作为答案发布。注意:如果您想在之后使用结果流,您需要像这样使用它:GZipStream(outStream,CompressionMode.Compress,true)