主要观点:当需要在某处(如文件系统或数据库)存储二进制数据时,压缩这些数据可能会很方便。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) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。