`

(四) ZIP文档

 
阅读更多

ZIP文档(通常)以压缩格式存储了一个或多个文件,每个ZIP文档都有一个包含诸如文件名字和使用的压缩方法等信息的头。
(1)使用ZIPInputStream来读入ZIP,通过getNextEntry方法返回一个描述这些项的ZipEntry类型的对象。
ZIPInputStream的read方法被修改为在碰到当前项的结尾时返回 -1 ,必须通过调用closeEntry来读下一项。
e.g.通读ZIP文件的代码序列 ZipInputStream zin = new ZipInputStream(new FileInputStream(zipFile));

    ZipEntry entry = null; 
    while((entry=zin.getNextEntry()) != null){ 
        ... ... 
        zin.closeEntry(); 
    } 
    zin.close();  

 

(2)可以不使用原生的read方法,通常会使用某个更能胜任的流过滤器的方法。
e.g.读ZIP文件内部的一个文本文件

    ZipInputStream zin = new ZipInputStream(new FileInputStream(zipFile)); 
    ZipEntry entry = null; 
    Scanner in = null; 
    while((entry=zin.getNextEntry()) != null){ 
        in = new Scanner(zin); 
        while(in.hasNextLine()){ 
            System.out.println(in.nextLine()); 
        } 
        zin.closeEntry(); 
    } 
    in.close();  
 

注意:如果压缩文件被损坏会抛出ZipException
(3)写出到ZIP文件,可以使用ZipOutputStream
对于ZIP中每一项都应创建一个ZipEntry对象,并将文件名传递给ZipEntry的构造器,它将设置文件日期和解压方法等参数。如果需要也可以覆盖这些设置。
然后调用ZipOutputStream的putNextEntry方法来开始写新文件,并将文件数据发送到ZIP流中。完成后调用closeEntry。

    private static void testZIP() {   
        try{   
            File fromFile1 = new File(System.getProperty("user.dir")+"\\Notes\\流\\zip\\1.txt");   
            File fromFile2 = new File(System.getProperty("user.dir")+"\\Notes\\流\\zip\\2.txt");   
               
            DataInputStream in1 = new DataInputStream(new BufferedInputStream(new FileInputStream(fromFile1)));   
            DataInputStream in2 = new DataInputStream(new FileInputStream(fromFile2));   
               
            File toFile = new File(System.getProperty("user.dir")+"\\Notes\\流\\zip\\result.zip");   
            ZipOutputStream zipOut = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(toFile)));   
               
            ZipEntry ze = new ZipEntry(fromFile1.getName());   
            zipOut.putNextEntry(ze);   
            int bytes = -1;   
            while((bytes=in1.read())!=-1){   
                zipOut.write(bytes);   
            }   
            in1.close();   
            zipOut.closeEntry();   
               
            ze = new ZipEntry(fromFile2.getName());   
            zipOut.putNextEntry(ze);   
            while((bytes=in2.read())!=-1){   
                zipOut.write(bytes);   
            }   
            in2.close();   
            zipOut.closeEntry();   
            zipOut.close();   
        }catch(Exception e){   
            e.printStackTrace();   
        }   
    }    
 

 

分享到:
评论

相关推荐

    页面-模板文档.zip

    页面模板文档.zip页面模板文档.zip页面模板文档.zip页面模板文档.zip页面模板文档.zip页面模板文档.zip页面模板文档.zip页面模板文档.zip页面模板文档.zip页面模板文档.zip页面模板文档.zip页面模板文档.zip页面模板...

    C# Ionic.Zip.dll以及 解压压缩帮助文档

    本文将深入探讨使用`Ionic.Zip.dll`库在C#中进行文件压缩和解压缩的方法,并提供相关的帮助文档。 `Ionic.Zip.dll`是一个强大的开源库,由DotNetZip项目提供,它允许C#开发者方便地进行ZIP、GZip、BZip2等格式的...

    7-Zip中文帮助文档

    7-Zip 适用于 Windows 95/98/ME/NT/2000/2003/XP。 7-Zip 是一款发布于 GNU LGPL 协议下的免费软件(除 unRar 代码及 AES 代码) 您可以查看 License.txt 文档了解详细的版权信息。

    笔试面试算法题文档.zip

    笔试面试算法题文档.zip 笔试面试算法题文档.zip 笔试面试算法题文档.zip 笔试面试算法题文档.zip 笔试面试算法题文档.zip 笔试面试算法题文档.zip 笔试面试算法题文档.zip 笔试面试算法题文档.zip 笔试面试算法题...

    J2ME飞机游戏含文档.zip

    J2ME飞机游戏含文档.zip J2ME飞机游戏含文档.zip J2ME飞机游戏含文档.zip J2ME飞机游戏含文档.zip J2ME飞机游戏含文档.zip J2ME飞机游戏含文档.zip J2ME飞机游戏含文档.zip J2ME飞机游戏含文档.zip J2ME飞机游戏含...

    TFT1.8寸液晶资料.zip文档arduino元器件资料下载

    TFT1.8寸液晶资料.zip文档arduino元器件资料下载TFT1.8寸液晶资料.zip文档arduino元器件资料下载TFT1.8寸液晶资料.zip文档arduino元器件资料下载TFT1.8寸液晶资料.zip文档arduino元器件资料下载 1.合个人学习技术做...

    产品经理相关文档、作业.zip产品经理相关文档、作业.zip

    产品经理相关文档、作业.zip产品经理相关文档、作业.zip产品经理相关文档、作业.zip产品经理相关文档、作业.zip产品经理相关文档、作业.zip产品经理相关文档、作业.zip产品经理相关文档、作业.zip产品经理相关文档、...

    红外遥控器和接收管.zip文档arduino元器件资料下载

    红外遥控器和接收管.zip文档arduino元器件资料下载红外遥控器和接收管.zip文档arduino元器件资料下载红外遥控器和接收管.zip文档arduino元器件资料下载红外遥控器和接收管.zip文档arduino元器件资料下载 1.合个人...

    PCF8591驱动程序及IIC工作原理分析.zip文档arduino元器件资料下载

    PCF8591驱动程序及IIC工作原理分析.zip文档arduino元器件资料下载PCF8591驱动程序及IIC工作原理分析.zip文档arduino元器件资料下载PCF8591驱动程序及IIC工作原理分析.zip文档arduino元器件资料下载PCF8591驱动程序及...

    软件开发需求分析文档.zip程序开发文档软件开发文技术档下载

    软件开发需求分析文档.zip程序开发文档软件开发文技术档下载软件开发需求分析文档.zip程序开发文档软件开发文技术档下载软件开发需求分析文档.zip程序开发文档软件开发文技术档下载软件开发需求分析文档.zip程序开发...

    Ionic.Zip文件

    四、优点与应用 - 易用性:提供直观的API,简化了ZIP操作。 - 性能:由于是纯.NET实现,与系统级别的压缩库相比,性能良好且跨平台。 - 开源:源代码公开,允许自定义修改和扩展。 - 广泛应用:常用于软件开发,如...

    数码管.zip文档arduino元器件资料下载

    数码管.zip文档arduino元器件资料下载数码管.zip文档arduino元器件资料下载数码管.zip文档arduino元器件资料下载数码管.zip文档arduino元器件资料下载 1.合个人学习技术做项目参考合个人学习技术做项目参考 2.适合...

    C# 仓库管理系统含文档.zip

    C# 仓库管理系统含文档.zip C# 仓库管理系统含文档.zip C# 仓库管理系统含文档.zip C# 仓库管理系统含文档.zip C# 仓库管理系统含文档.zip C# 仓库管理系统含文档.zip C# 仓库管理系统含文档.zip C# 仓库管理系统含...

    JSP网上购物源码含文档.zip

    JSP网上购物源码含文档.zip JSP网上购物源码含文档.zip JSP网上购物源码含文档.zip JSP网上购物源码含文档.zip JSP网上购物源码含文档.zip JSP网上购物源码含文档.zip JSP网上购物源码含文档.zip JSP网上购物源码含...

    舵机.zip文档arduino元器件资料下载

    舵机.zip文档arduino元器件资料下载舵机.zip文档arduino元器件资料下载舵机.zip文档arduino元器件资料下载舵机.zip文档arduino元器件资料下载 1.合个人学习技术做项目参考合个人学习技术做项目参考 2.适合学生做毕业...

    jdk文档.zip

    Java jdk 1.6、1.7和1.8的API文档,中文,可以离线查看。

    Passper for ZIP v3.6一款专业ZIP文档压缩包密码恢复破解删除工具.rar

    Passper for ZIP v3.6一款专业ZIP文档压缩包密码恢复破解删除工具

    MAX232.zip文档arduino元器件资料下载

    MAX232.zip文档arduino元器件资料下载MAX232.zip文档arduino元器件资料下载MAX232.zip文档arduino元器件资料下载MAX232.zip文档arduino元器件资料下载 1.合个人学习技术做项目参考合个人学习技术做项目参考 2.适合...

    1602液晶.zip文档arduino元器件资料下载

    1602液晶.zip文档arduino元器件资料下载1602液晶.zip文档arduino元器件资料下载1602液晶.zip文档arduino元器件资料下载1602液晶.zip文档arduino元器件资料下载 1.合个人学习技术做项目参考合个人学习技术做项目参考 ...

Global site tag (gtag.js) - Google Analytics