Java用Zip进行多文件保存

Java里面的内置的ZIP文件压缩流具有很强的功能,能进行ZIP的压缩请求,下面我们来看利用ZIP流实现对文件的压缩和读取

  1. package com.bird.thinking;
  2. import java.io.BufferedOutputStream;
  3. import java.io.BufferedReader;
  4. import java.io.FileOutputStream;
  5. import java.io.FileReader;
  6. import java.util.Enumeration;
  7. import java.util.zip.Adler32;
  8. import java.util.zip.CheckedOutputStream;
  9. import java.util.zip.ZipEntry;
  10. import java.util.zip.ZipFile;
  11. import java.util.zip.ZipOutputStream;
  12. /**
  13.  * @use 用ZIP进行多文件保存
  14.  * @author Bird
  15.  *
  16.  */
  17. public class ZipCompress {
  18.     public static void creatIndex() throws Exception{//构建压缩文件
  19.         FileOutputStream f = new FileOutputStream("d://bird.zip");//构建文件输出流
  20.         CheckedOutputStream csum = new CheckedOutputStream(f,new Adler32());//计算和校验文件Adler32()比较快一点
  21.         ZipOutputStream zos = new ZipOutputStream(csum);//压缩文件输出流
  22.         BufferedOutputStream out = new BufferedOutputStream(zos);//构建缓冲区
  23.         zos.setComment("A Test of java Zipping");//添加注释
  24.         BufferedReader in = new BufferedReader(new FileReader("d://book.xml"));//读取磁盘的一个文件
  25.         zos.putNextEntry(new ZipEntry("book.xml"));//设置压缩包里面的内容
  26.         int c ;
  27.         while((c = in.read()) != -1){
  28.             out.write(c);
  29.         }
  30.         in.close();
  31.         out.flush();
  32.         out.close();
  33.     }
  34.     public static void readIndex() throws Exception{//读取ZIP文件
  35.         ZipFile zf = new ZipFile("d://bird.zip");
  36.         Enumeration<? extends ZipEntry> e = zf.entries();
  37.         while(e.hasMoreElements()){
  38.             ZipEntry ze2 = (ZipEntry)e.nextElement();
  39.             System.out.println(ze2.getName());
  40.         }
  41.     }
  42.     public static void main(String[] args) throws Exception{
  43.         readIndex();
  44.     }
  45. }

 
转自:http://blog.csdn.net/a352193394/article/details/6898113

标签: JAVA, Zip

添加新评论