GZipStream和DeflateStream会生成更大的文件

kit*_*ite 9 c# gzipstream deflatestream

我正在尝试在C#中使用deflate/gzip流,但看起来压缩后的文件比以前更大.

例如,我压缩了900ko的docx文件,但它产生了1.4Mo!

它为我尝试过的每个文件都做到了.

我做错的方式可能是我错了吗?这是我的代码:

  FileStream input = File.OpenRead(Environment.CurrentDirectory + "/file.docx");
  FileStream output = File.OpenWrite(Environment.CurrentDirectory + "/compressedfile.dat");

  GZipStream comp = new GZipStream(output, CompressionMode.Compress);

  while (input.Position != input.Length)
      comp.WriteByte((byte)input.ReadByte());

  input.Close();

  comp.Close(); // automatically call flush at closing
  output.Close();
Run Code Online (Sandbox Code Playgroud)

And*_*rey 7

这样一个巨大的差异对我来说似乎很奇怪,但你应该记住,docx它本身是用ZIP压缩的,所以没有理由再次压缩它,结果通常更大.