主要观点:当需要在某处(如文件系统或数据库)存储二进制数据时,压缩这些数据可能会很方便。Java 除了常见的 ZIP 算法外,还提供了Deflater和Inflater类,它们使用 ZLIB 压缩库,ZLIB 是 PNG 标准的一部分且不受任何专利保护。
关键信息:
- 提供了一个实用类
CompressionUtils,包含compress和decompress方法用于压缩和解压缩 Java 字节数组。 - 在
compress方法中,创建Deflater对象,设置输入数据,使用ByteArrayOutputStream进行压缩操作,最后返回压缩后的数据。 - 在
decompress方法中,创建Inflater对象,设置输入数据,使用ByteArrayOutputStream进行解压缩操作,最后返回解压缩后的数据。 - 还可以通过调用
Deflater类的setLevel方法并指定Deflater.BEST_COMPRESSION常量来获得更好的压缩结果。
重要细节:
Deflater用于压缩数据,Inflater用于解压缩数据。- 在压缩过程中,通过循环调用
deflate方法将数据写入ByteArrayOutputStream。 - 在解压缩过程中,通过循环调用
inflate方法将数据写入ByteArrayOutputStream。 - 输出时分别打印原始数据大小和压缩后数据大小。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。