当前位置:编程学习 > JAVA >>

IO操作之使用zip包压缩和解压缩文件

Java API中的import java.util.zip.*;包下包含了Java对于压缩文件的所有相关操作。

我们可以使用该包中的方法,结合IO中的相关知识,进行文件的压缩和解压缩相关操作。

ZipFile
java中的每一个压缩文件都是可以使用ZipFile来进行表示的。

[java]
File file = new File("F:/zippath.zip"); 
ZipFile zipFile = new ZipFile(file); 
System.out.println("压缩文件的名称为:" + zipFile.getName()); 

        File file = new File("F:/zippath.zip");
        ZipFile zipFile = new ZipFile(file);
        System.out.println("压缩文件的名称为:" + zipFile.getName());

压缩单个文件
[java]
  /** 压缩单个文件*/ 
  public static void ZipFile(String filepath ,String zippath) { 
    try { 
          File file = new File(filepath); 
          File zipFile = new File(zippath); 
          InputStream input = new FileInputStream(file); 
          ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFile)); 
          zipOut.putNextEntry(new ZipEntry(file.getName())); 
          int temp = 0; 
          while((temp = input.read()) != -1){ 
              zipOut.write(temp); 
          } 
          input.close(); 
          zipOut.close(); 
} catch (Exception e) { 
    e.printStackTrace(); 

    /** 压缩单个文件*/
    public static void ZipFile(String filepath ,String zippath) {
     try {
            File file = new File(filepath);
            File zipFile = new File(zippath);
            InputStream input = new FileInputStream(file);
            ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFile));
            zipOut.putNextEntry(new ZipEntry(file.getName()));
            int temp = 0;
            while((temp = input.read()) != -1){
                zipOut.write(temp);
            }
            input.close();
            zipOut.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }应用:
[java]
ZipFile("d:/hello.txt", "d:/hello.zip"); 

ZipFile("d:/hello.txt", "d:/hello.zip");

压缩多个文件(文件夹)
[java]
  /** 一次性压缩多个文件,文件存放至一个文件夹中*/ 
  public static void ZipMultiFile(String filepath ,String zippath) { 
try { 
       File file = new File(filepath);// 要被压缩的文件夹  
       File zipFile = new File(zippath); 
       InputStream input = null; 
       ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFile)); 
       if(file.isDirectory()){ 
           File[] files = file.listFiles(); 
           for(int i = 0; i < files.length; ++i){ 
               input = new FileInputStream(files[i]); 
               zipOut.putNextEntry(new ZipEntry(file.getName() + File.separator + files[i].getName())); 
               int temp = 0; 
               while((temp = input.read()) != -1){ 
                   zipOut.write(temp); 
               } 
               input.close(); 
           } 
       } 
       zipOut.close(); 
} catch (Exception e) { 
    e.printStackTrace(); 

    /** 一次性压缩多个文件,文件存放至一个文件夹中*/
    public static void ZipMultiFile(String filepath ,String zippath) {
  try {
         File file = new File(filepath);// 要被压缩的文件夹
         File zipFile = new File(zippath);
         InputStream input = null;
         ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFile));
         if(file.isDirectory()){
             File[] files = file.listFiles();
             for(int i = 0; i < files.length; ++i){
                 input = new FileInputStream(files[i]);
                 zipOut.putNextEntry(new ZipEntry(file.getName() + File.separator + files[i].getName()));
                 int temp = 0;
                 while((temp = input.read()) != -1){
                     zipOut.write(temp);
                 }
                 input.close();
             }
         }
         zipOut.close();
  } catch (Exc

补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,