假设我有一个这样的 .txt 文件:
11111111111111Hello and welcome to stackoverflow. stackoverflow will hopefully provide me with answers to answers i do not know. Hello and goodbye.11111111111111
然后我将创建一个二进制形式的等效项(.bin 文件),如下所示:
Stream.Write(intBytes, 0, intBytes.Length); // 11111111111111
Stream.Write(junkText, 0, junkText.Length); // Hello and welcome to stackoverflow...
Stream.Write(intBytes, 0, intBytes.Length); // 11111111111111
第一个示例比第二个示例压缩得更好。如果我删除了 11111111111111,它们会压缩到相同的大小。但是拥有 11111 意味着 .txt 版本的压缩效果更好。
byte[] intBytes = BitConverter.GetBytes(11111111111111); // This is 8 bytes
byte[] strBytes = UTF8Encoding.UTF8.GetBytes("11111111111111"); // This is 14 bytes
这是使用本机 C++ Zlib 库。
在压缩之前 .bin 文件的大小较小,我期待这一点。
为什么压缩后的 .txt 版本变小了?它似乎比 bin 等效压缩得更好。
bin 文件:未压缩大小:2448 压缩大小:177
txt 文件:未压缩大小:2460 压缩大小:167