zip 数据压缩

简介: 压缩与解压都是针对字节数组来进行的。内存数据压缩java.util.zip.DeflaterOutputStream 压缩步骤 1.创建一个ByteArrayOutputStream byteArrayOutputStream; 2.调用DeflaterOutputStream deflaterOutputStream=DeflaterOutputStrea

压缩与解压都是针对字节数组来进行的。

内存数据压缩

java.util.zip.DeflaterOutputStream
压缩步骤
1.创建一个ByteArrayOutputStream byteArrayOutputStream;
2.调用DeflaterOutputStream deflaterOutputStream=DeflaterOutputStream(byteArrayOutputStream)构造函数;
3.调用deflaterOutputStream.write(待压缩字节数组);
4.byteArrayOutputStream.toByteArray()得到压缩后字节数组。

内存数据解压

java.util.zip.InflaterOutputStream
解压缩步骤
1.创建一个ByteArrayOutputStream byteArrayOutputStream;
2.调用InflaterOutputStream inflaterOutputStream=InflaterOutputStream (byteArrayOutputStream)构造函数;
3.inflaterOutputStream.write(待解压缩字节数组);
4.byteArrayOutputStream.toByteArray()得到解压缩后字节数组。

代码


文件压缩(undone)

java.util.zip.ZipOutputStream
此类代表压缩数据的输出流。
java.util.zip.ZipOutputStream.ZipOutputStream(OutputStream out)
构造函数,与OutputStream绑定。
java.util.zip.ZipEntry.ZipEntry(String name)
通过指定的名字创建新ZipEntry。
void java.util.zip.ZipOutputStream.putNextEntry(ZipEntry e) throws IOException
开始写入一个新的zipEntry,并界定了一个文件内容的起点。
void java.util.zip.ZipOutputStream.closeEntry()
关闭当前的zipEntry,并界定了写入下一个zipEntry的起点。

文件解压(undone)

java.util.zip.ZipInputStream
此类代表压缩数据的输入流。
ZipEntry java.util.zip.ZipInputStream.getNextEntry()
读下一个zipEntry,并界定了一个文件内容的起点。
ZipInputStream类继承自InputStream,它没有重写read(byte[]) 方法,该方法见下行:
int java.io.FilterInputStream.read(byte[] b)
返回读取到的字节数。-1表示流中的内容读取完毕。这个函数内部会调用read(byte[] b, int off, int len)函数,ZipInputStream类重写了该函数:
int java.util.zip.ZipInputStream.read(byte[] b, int off, int len)
读取当前zipEntry的内容,输出到b数组。

目录
相关文章
|
前端开发 算法 API
直接在前端做 zip 压缩/解压
前段时间研究前端是如何解析 excel 表格的时候了解到 jszip 这个库,可以直接在前端对 zip 包进行压缩和解压缩,今天稍微水一篇。
Java实现gz压缩与解压缩
Java实现gz压缩与解压缩
2198 0
|
API Android开发
|
Serverless 对象存储 弹性计算
函数计算对文件进行压缩和解压缩使用总结
前言 函数计算具有弹性伸缩的能力,可以给用户带来免运维和毫秒级扩容的计算能力。 但是它也存在一些限制, 比如一个执行环境最大内存只有3G, 本文旨在进行总结一些函数计算在文件压缩和解压缩的一些实践案例, 希望能给大家抛砖引玉,引出更好的实践案例。
2881 0
|
算法
ZIP 算法详解 (转!)
zip 的压缩原理与实现(lz77 算法压缩) 无损数据压缩是一件奇妙的事情,想一想,一串任意的数据能够根据一定的规则转换成只有原来 1/2 - 1/5 长度的数据,并且能够按照相应的规则还原到原来的样子,听起来真是很酷。
950 0