inter12 发表于 2013-1-28 18:44:29

java.util.zip

主要是三个类:
      ZipOutputStream         压缩文件使用
          ZipInputStream          解压缩文件使用
          ZipFile                循环压缩文件使用,也可以获得文件的数目
                  
1.将多个文件压缩到成一个文件夹
      String[] fileNames = {"tt.txt","haha.txt"};       ZipOutputStream zos = new ZipOutputStream(new FileOutputStream("tomorrow.zip"));            byte[] buff = new byte;       for(int i = 0;i < fileNames.length ; i++)       {         FileInputStream is = new FileInputStream(fileNames);                      zos.putNextEntry(new ZipEntry(fileNames));      //最关键的是这一步         int len = 0;         while ((len = is.read(buff)) > 0 )         {               zos.write(buff, 0, len);         }                      zos.closeEntry();      //需要注意的是这个地方         is.close();       }       zos.close();
   2.罗列某个压缩文件中所有的文件名称
         ZipFile zf= new ZipFile(new File("tomorrow.zip"));      for(Enumeration<ZipEntry> entrys = (Enumeration<ZipEntry>)zf.entries() ; entrys.hasMoreElements();)      {            String zipEnteyName = entrys.nextElement().getName();            System.out.println(zipEnteyName);      }
   3. 解压缩ZIP文件
   //获得输入流
      ZipInputStream ziStream = new ZipInputStream(new FileInputStream("tomorrow.zip"));      //主要是为了循环使用      ZipFile zFile = new ZipFile(new File("tomorrow.zip"));                for (Enumeration<ZipEntry> entries = (Enumeration<ZipEntry>)zFile.entries();entries.hasMoreElements();)      {            ZipEntry entry = ziStream.getNextEntry();            if ( null == entry)            {                break;            }            String name = entry.getName();            System.out.println(name);            FileOutputStream os = new FileOutputStream(name);            int len = 0;            byte[] buff = new byte;            while ((len = ziStream.read(buff)) > 0)            {                os.write(buff, 0, len);            }            ziStream.closeEntry();            os.close();      }                ziStream.close();
页: [1]
查看完整版本: java.util.zip