【0】README

0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件——ZIP文档 的相关知识;
0.2) for source code, please visit https://github.com/pacosonTang/core-java-volume/blob/master/coreJavaAdvanced/chapter1/ZipTest.java


【1】ZipInputStream + ZipOutputStream:

1.1)ZipInputStream: 读入 zip 文件(zip文件 == ZipEntry)
1.2)ZipOutputStream: 写出到 zip 文件;


【2】下面是典型的通读ZIP文件的代码序列:

ZipInputStream zis = new ZipInputStream(new FileInputStream(zipname));
ZipEntry zipEntry;
while((entry = zip.getNextEntry()) != null)
{......zin.closeEntry();
}
zin.close();

2.1 )当希望读入某个 zip 项的内容时, 我们可能并不想使用原生的read 方法, 通常,我们将使用某个更能胜任的流过滤器方法:

Scanner in = new Scanner(zis);
while(in.hasNextLine())do sth with in.nextLine();
  • Warning) 在读入单个ZIP 项之后后,不要关闭ZIP输入流, 也不要将 其传递给 可能会关闭它的方法, 否则, 你就不能再读入后序的项了;


2.2) 要写出到ZIP文件, 使用 ZipOutputStream, 对于你希望放入到 ZIP 文件中的每一项, 都应该创建一个 ZipEntry 对象, 并将文件名传递给 ZipEntry的构造器, 它将设置其他诸如文件日期和解压缩方法等参数;
2.3)如果需要:

  • step1)覆盖这些设置;
  • step2)需要调用 ZipOutputStream 的 putNextEntry 方法来开始写出新文件, 并将文件数据发送到 ZIP流中;
  • step3)当完成时, 需要调用 closeEntry;然后你需要对所有你希望存储的文件都重复这个过程, 如以下代码:
FileOutputStream fos = new  FileOutputStream("test.zip");
ZipOutputStream zos = new ZipOutputStream(fos);
for all files
{ZipEntry ze = new ZipEntry(filename);zos.putNextEntry(ze);...zout.closeEntry();
}
zout.close();


Attention)

  • A1) JAR 文件 只是带有一个特殊项的ZIP文件, 这个项称为清单;
  • A2)可以使用 JarInputStream 和 JarOutputStream 类来读写清单项;
  • A3) ZIP 流是一个能够展示流的抽象化的强大之处的实例。 当你读入以压缩格式存储的数据时,不必担心边请求边解压数据的问题, 而且ZIP 格式的字节源并非必须是文件, 也可以是来自网络连接的 ZIP 数据;

java流与文件——ZIP文档相关推荐

  1. (五)、JAVA基于OPENXML的word文档插入、合并、替换操作系列之word文件合并[支持多文件]

    (五).JAVA基于OPENXML的word文档插入.合并.替换操作系列之word文件合并[支持多文件] 二.word合并的多种方案简单比较 三.基于Open Xml WordprocessingML ...

  2. java流与文件——操作文件

    [0]README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件--操作文件 的相关知识: 0.2) for source code, please vi ...

  3. (一)JAVA基于OPENXML的word文档插入、合并、替换操作系列之基础篇

    (一)JAVA基于OPENXML的word文档插入.合并.替换操作系列之基础篇 前言 什么是Open Xml? Open XML SDK 这系列笔记要做点什么? 涉及技术点 关于word.openxm ...

  4. java openxml 操作 word,(三)、JAVA基于OPENXML的word文档插入、合并、替换操作系列之html转word...

    (三).JAVA基于OPENXML的word文档插入.合并.替换操作系列之html转word 系列笔记传送门 富文本转word文档 准备待转换内容 内容清理与格式化 转换成word文档 输出结果展示 ...

  5. 纯java pdf转换成html,JAVA实现PDF转HTML文档的示例代码

    本文是基于PDF文档转PNG图片,然后进行图片拼接,拼接后的图片转为base64字符串,然后拼接html文档写入html文件实现PDF文档转HTML文档. 引入Maven依赖 org.apache.p ...

  6. java读取桌面文件_用java读取桌面上的文档abc.txt,程序怎么写?

    用java读取桌面上的文档"abc.txt",程序怎么写? 关注:141  答案:6  mip版 解决时间 2021-02-08 20:51 提问者一段小時光 2021-02-08 ...

  7. java重新组合_Java 合并Word文档

    在日常工作中,难免会遇到需要将多个Word文档合并到一个文档中,对其进行重新整理的情况,为了能帮助大家高效快速的完成这个操作,接下来本文就将介绍两种在Java程序中合并Word文档的方法. 方法一:如 ...

  8. java流与文件——流

    [0]README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件--流 的相关知识: 0.2) 输入流和输出流(InputStream 和 OutputS ...

  9. 【PDF】java使用Itext生成pdf文档--详解

    [API接口] 一.Itext简介 API地址:javadoc/index.html:如 D:/MyJAR/原JAR包/PDF/itext-5.5.3/itextpdf-5.5.3-javadoc/i ...

最新文章

  1. SoapUI进行REST请求,POST方法提交到数据库的数据乱码问题
  2. map赋值给另一个map_Java学习(十六): Lambda操作Map
  3. 汇编中的LABEL详解
  4. 小学计算机ppt课教案,小学信息技术公开课教案《让幻灯片变得更加漂亮》教学设计与反思...
  5. layui数据可视化_空间数据可视化 GEOM
  6. 接收 go run main.go 后面的参数_厦门油泥水三相离心分离机功能和参数
  7. 普通人如何月入10万
  8. 最短路径和最小生成树的区别
  9. 「代码随想录」本周学习小结!(动态规划系列三)
  10. java集合-TreeSet排序方式
  11. Python金融数据挖掘 第11章 复习思考题3 某年各省级行政区环境污染状况的统计数据(已经过标准化处理),现采用K均值聚类方法,编写Python程序将省级行政区分成4类。
  12. java 第七章 数组
  13. Java 库 Failsafe 2.0 发布,支持组合弹性策略
  14. debian安装vim提示Package vim is not available, but is referred to by another package的解决方案
  15. java font好看的字体_解决Java字体难看的问题
  16. Log4j整合阿里云日志服务
  17. 三防手持平板电脑在工业的发展趋势
  18. 8g内存一般占用多少_8g内存开机占用一半|Windows操作系统内存使用率多少正常?...
  19. splash下拉滚动条位置
  20. C++开发工程师学习路线

热门文章

  1. cf 1511 D. Min Cost String
  2. 数据结构之线段树Ⅴ——(李超线段树)Robot,Product Sum,Building Bridges,Jump mission
  3. 跳房子(ybtoj-单调队列)
  4. 理解至上:二叉堆与优先队列详细用法
  5. P5283-[十二省联考2019]异或粽子【可持久化Trie,堆】
  6. jzoj3771-小Z的烦恼【高精度,数学】
  7. jzoj1082-合并果子【堆,贪心】
  8. 【excrt】屠龙勇士(luogu 4774)
  9. [NOI2014] 起床困难综合症(二进制,贪心)
  10. MST(最小生成树)上的确定性和存在性问题