------------------------------------------------------------
我的个人补充:
在java.util.zip 中包含了过滤器流,该流用于压缩,解压缩具有zip、gzip和压缩格式的流。
java.util.zip 中有6个类用于实现压缩和解压缩,输入流解压数据和输出流压缩数据。
public class DeflaterOuputStream extends FilterOutpuStream public class InflaterInputStream extends FilterInputStream public class GZIPOutputStream extends FilterOutputStream public class GZIPInputStream extends FilterInputStream public class ZipOutputStream extends FilterOutputStream public class ZipInputStream extends FilterInputStream |
简单打开 FileInputStream 给该文件,然后见GZIPInputStream连接到FileInputStream 上就可以了。如:
FileInputStream fin = new FileInputStream("aaa.gz");
GZIPInputStream gzin = new GZIPInputStream(fin);
以此类推,仅使用read(),skip(),available() 方法就可以从gzin 中读取解压数据。
---------------------- FileInputStream fin = new FileInputStream("aa.gz"); GZIPInputStream gzin = new GZIPInputStream(fin); FileOutputStream fout = new FileOutputStream("aa"); int b = 0; while ((b == gzin.read() != -1)) fout.write(b); gzin.close(); out.flush(); out.close(); |
ZipOutputStream 稍微复杂一点。在zip文件中每个文件用ZipEntry对象表示。
如下:
FileInputStream fin = new FileInputStream("aaa.zip"); ZipInputStream zin = new ZipInputStream(fin); ZipEntry ze = null; int b = 0; while ((ze = zin.getNextEntry()) != null) { FileOutputStream fout = new FileOutputStream(ze.getName()); while ((b = zin.read()) != -1) fout.write(b); zin.closeEntry(); fout.flush(); fout.close(); } zin.close(); ——------------------------------------ THANKS |