zoukankan      html  css  js  c++  java
  • java IO流 Zip文件操作

    一.简介

        压缩流操作主要的三个类 ZipOutputStream、ZipFile、ZipInputStream ,经常可以看到各种压缩文件:zip、jar、GZ格式的压缩文件

    二.ZipEntry

     说明:在实例化ZipEntry 的时候,要设置名称,此名称实际上就是压缩文件中每一个元素的名称。

    三、ZipOutputStream

    四、压缩一个文件

    import java.io.File ;  
    import java.io.FileInputStream ;  
    import java.io.InputStream ;  
    import java.util.zip.ZipEntry ;  
    import java.util.zip.ZipOutputStream ;  
    import java.io.FileOutputStream ;  
    public class ZipOutputStreamDemo01{  
        public static void main(String args[]) throws Exception{    // 所有异常抛出  
            File file = new File("d:" + File.separator + "mldn.txt") ;  // 定义要压缩的文件  
            File zipFile = new File("d:" + File.separator + "mldn.zip") ;   // 定义压缩文件名称  
            InputStream input = new FileInputStream(file) ; // 定义文件的输入流  
            ZipOutputStream zipOut = null ; // 声明压缩流对象  
            zipOut = new ZipOutputStream(new FileOutputStream(zipFile)) ;  
            zipOut.putNextEntry(new ZipEntry(file.getName())) ; // 设置ZipEntry对象  
            zipOut.setComment("www.mldnjava.cn") ;  // 设置注释  
            int temp = 0 ;  
            while((temp=input.read())!=-1){ // 读取内容  
                zipOut.write(temp) ;    // 压缩输出  
            }  
            input.close() ; // 关闭输入流  
            zipOut.close() ;    // 关闭输出流  
        }  
    };  
    

    五、压缩一个文件夹

    import java.io.File ;  
    import java.io.FileInputStream ;  
    import java.io.InputStream ;  
    import java.util.zip.ZipEntry ;  
    import java.util.zip.ZipOutputStream ;  
    import java.io.FileOutputStream ;  
    public class ZipOutputStreamDemo02{  
        public static void main(String args[]) throws Exception{    // 所有异常抛出  
            File file = new File("d:" + File.separator + "mldn") ;  // 定义要压缩的文件夹  
            File zipFile = new File("d:" + File.separator + "mldndir.zip") ;    // 定义压缩文件名称  
            InputStream input = null ;  // 定义文件输入流  
            ZipOutputStream zipOut = null ; // 声明压缩流对象  
            zipOut = new ZipOutputStream(new FileOutputStream(zipFile)) ;  
            zipOut.setComment("www.mldnjava.cn") ;  // 设置注释  
            int temp = 0 ;  
            if(file.isDirectory()){ // 判断是否是文件夹  
                File lists[] = file.listFiles() ;   // 列出全部文件  
                for(int i=0;i<lists.length;i++){  
                    input = new FileInputStream(lists[i]) ; // 定义文件的输入流  
                    zipOut.putNextEntry(new ZipEntry(file.getName()  
                        +File.separator+lists[i].getName())) ;  // 设置ZipEntry对象  
                    while((temp=input.read())!=-1){ // 读取内容  
                        zipOut.write(temp) ;    // 压缩输出  
                    }  
                    input.close() ; // 关闭输入流  
                }  
            }  
            zipOut.close() ;    // 关闭输出流  
        }  
    };  
    

    六、 ZipFile

    第一步:为 ZipFile 实例化,实例化时需要接收File  类的引用

    import java.io.File ;  
    import java.io.FileInputStream ;  
    import java.io.InputStream ;  
    import java.util.zip.ZipEntry ;  
    import java.util.zip.ZipOutputStream ;  
    import java.util.zip.ZipFile ;  
    import java.io.FileOutputStream ;  
    public class ZipFileDemo01{  
        public static void main(String args[]) throws Exception{    // 所有异常抛出  
            File file = new File("d:" + File.separator + "mldn.zip") ;  // 找到压缩文件  
            ZipFile zipFile = new ZipFile(file) ;   // 实例化ZipFile对象  
            System.out.println("压缩文件的名称:" + zipFile.getName()) ;    // 得到压缩文件的名称  
        }  
    };  
    

    通过ZipFile 文件,为mldn.zip 进行解压缩操作

    import java.io.File ;  
    import java.io.FileInputStream ;  
    import java.io.InputStream ;  
    import java.util.zip.ZipEntry ;  
    import java.util.zip.ZipOutputStream ;  
    import java.io.FileOutputStream ;  
    public class ZipOutputStreamDemo02{  
        public static void main(String args[]) throws Exception{    // 所有异常抛出  
            File file = new File("d:" + File.separator + "mldn") ;  // 定义要压缩的文件夹  
            File zipFile = new File("d:" + File.separator + "mldndir.zip") ;    // 定义压缩文件名称  
            InputStream input = null ;  // 定义文件输入流  
            ZipOutputStream zipOut = null ; // 声明压缩流对象  
            zipOut = new ZipOutputStream(new FileOutputStream(zipFile)) ;  
            zipOut.setComment("www.mldnjava.cn") ;  // 设置注释  
            int temp = 0 ;  
            if(file.isDirectory()){ // 判断是否是文件夹  
                File lists[] = file.listFiles() ;   // 列出全部文件  
                for(int i=0;i<lists.length;i++){  
                    input = new FileInputStream(lists[i]) ; // 定义文件的输入流  
                    zipOut.putNextEntry(new ZipEntry(file.getName()  
                        +File.separator+lists[i].getName())) ;  // 设置ZipEntry对象  
                    while((temp=input.read())!=-1){ // 读取内容  
                        zipOut.write(temp) ;    // 压缩输出  
                    }  
                    input.close() ; // 关闭输入流  
                }  
            }  
            zipOut.close() ;    // 关闭输出流  
        }  
    }; 
  • 相关阅读:
    shell脚本中执行python脚本并接收其返回值的例子
    linux查找所有文件中某个字符串
    Shell脚本中单引号(‘)和双引号(“)的使用区别
    第一个shell脚本
    shell 比较符号
    source ~/.bash_profile是什么意思
    bash shell:获取当前脚本的绝对路径(pwd/readlink)
    poj 3307 Smart Sister 打表解因子生成数问题
    Python将JSON格式数据转换为SQL语句以便导入MySQL数据库
    UISegmentedControl的具体使用
  • 原文地址:https://www.cnblogs.com/hongwz/p/5649905.html
Copyright © 2011-2022 走看看