本文共 1412 字,大约阅读时间需要 4 分钟。
压缩与解压都是针对字节数组来进行的。
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()得到解压缩后字节数组。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的起点。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数组。转载地址:http://zitta.baihongyu.com/