JAVA(二)将文件转换成ZIP文件

一.执行的主函数

  • 读取文件的流
public void zip() throws Exception {
    //文件输出流
    FileOutputStream fos = new     FileOutputStream("d:/arch/xxx.xar");
    //压缩流
    ZipOutputStream zos = new ZipOutputStream(fos);
}
  • 定义字符串,读取文件夹中的文件列表
String[] arr = {
            "d:/arch/1.jpg",
            "d:/arch/2.txt",
            "d:/arch/3.xml"
    };
  • 读取文件文件名,调用功能函数。
for(String s : arr){
        addFile(zos , s);
    }
    zos.close();
    fos.close();
    System.out.println("over");
  • 循环向zos中添加条目
public static void addFile(ZipOutputStream zos , String path) throws Exception{
    File f = new File(path);
    zos.putNextEntry(new ZipEntry(f.getName()));
    FileInputStream fis = new FileInputStream(f);
    byte[] bytes = new byte[fis.available()];
    fis.read(bytes);
    fis.close();
    
    zos.write(bytes);
    zos.closeEntry();
}

四.解压方法

public void unzip() throws Exception{
    //
    FileInputStream fis = new FileInputStream("d:/arch/xxx.zip");
    //
    ZipInputStream zis = new ZipInputStream(fis);
    //
    ZipEntry entry = null ;
    byte[] buf = new byte[1024];
    int len = 0 ;


while((entry = zis.getNextEntry()) != null){
        String name = entry.getName();
                读取文件名,然后执行戒指解压方法
        FileOutputStream fos = new FileOutputStream("d:/arch/unzip/" + name);
        while((len = zis.read(buf)) != -1){
                        解压用write
            fos.write(buf, 0, len);
        }
        fos.close();
    }
    zis.close();
    fis.close();
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,485评论 0 5
  • 从95年开始学俄语,已经记不清去过大鹅国多少次了,一直说要带老妈和闺女去一趟 一直没有兑现。偶尔说起去俄罗斯,得到...
    nataemma阅读 459评论 0 0
  • Hello!我叫鲁青苇,女,坐标广州,目前供职于一家央企,从事风控合规工作。我的理想是成为一名深谙心理咨询,解决心...
    60分妈妈Qing阅读 278评论 9 0