//压缩流
    //ZipInputStream 解压时使用
    //ZipOutputStream 压缩时使用
    //ZipEntry条目   (不支持中文)

压缩文件

static void compress() {File source = new File("D:\\png\\");//源文件File targer = new File("D:\\zz.zip");//压缩包try(FileOutputStream fis = new FileOutputStream(targer);ZipOutputStream zos = new ZipOutputStream(fis) ){if (source.isDirectory()) {for(File f:source.listFiles())addEntry(zos,"",f);}else {addEntry(zos,"",source);}} catch (Exception e) {e.printStackTrace();}}
//    @param zos  压缩流
//    @param base 文件在压缩包中的路径
//    @param source  被压缩的文件啊static void addEntry(ZipOutputStream zos,String base,File source) {if (source.isDirectory()) {for(File file:source.listFiles()) {addEntry(zos, base+source.getName()+File.separator,file);}}else {byte buf[] = new byte[1024];try(FileInputStream fis = new FileInputStream(source)) {int count = -1;//在压缩包中添加条目zos.putNextEntry(new ZipEntry(base+source.getName()));while((count=fis.read(buf))!=-1) {zos.write(buf, 0, count);zos.flush();}zos.close();//关闭条目} catch (Exception e) {e.printStackTrace();}}}public static void main(String[] args) {compress();}

15.7.2解压缩文件

static void decompression() {File dir = new File("zip\\");File source = new File("zz.zip");byte buf[] = new byte[1024];//缓冲区ZipEntry entry =null;try(FileInputStream fis = new FileInputStream(source) ;ZipInputStream zis = new ZipInputStream(fis)){while(true) {entry = zis.getNextEntry();//获取一个条目if (entry==null) { //如果是一个文件夹就跳过break;}if (entry.isDirectory()) { //如果是一个文件,就读出来continue;}File f = new File(dir,entry.getName());//文件的名字就是条目的名字if(!f.getParentFile().exists()) {//如果解压的文件不存在f.getParentFile().mkdirs();//创建}int count = -1;FileOutputStream fos = new FileOutputStream(f);while((count = zis.read(buf))!=-1) {fos.write(buf,0,count);fos.flush();}fos.close();zis.closeEntry();}} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {decompression();}

15.7.1压缩文件相关推荐

  1. 利用WinRAR命令行压缩文件或文件夹2007-11-14 15:07压缩文件夹

    利用WinRAR命令行压缩文件或文件夹 2007-11-14 15:07 压缩文件夹winrar.exe a -ag -k -r -s -ibck c:/bak.rar c:/dat/ 压缩多个文件 ...

  2. 压缩文件目录 linux,linux_压缩文件及目录

    压缩解压缩命令: 压缩格式:gz,bz2,xz,zip,z 压缩算法:算法不同,压缩比也会不同: compress::FILENAME.Z uncompress 目前最流行的压缩工具: gzip: . ...

  3. 【Android 安装包优化】使用 lib7zr.a 静态库处理压缩文件 ( 交叉编译 lib7zr.a 静态库 | 安卓工程导入静态库 | 配置 CMakeLists.txt 构建脚本 )

    文章目录 一.修改 7zr 交叉编译脚本 Android.mk 二.完整的 7zr 交叉编译脚本 Android.mk 三.交叉编译 lib7zr.a 静态库 四.Android Studio 导入 ...

  4. 云计算之路-试用Azure:数据库备份压缩文件在虚拟机上的恢复速度测试

    测试环境:Windows Azure上海机房,虚拟机配置为大型(四核,7 GB 内存),磁盘情况见下图. 数据库备份压缩文件大于为12.0 GB (12,914,327,552 bytes),放置于T ...

  5. linux 解压所有以zip结尾的文件_在 Linux 上压缩文件:zip 命令的各种变体及用法...

    除了压缩和解压缩文件外,你还可以使用 zip 命令执行许多有趣的操作.这是一些其他的 zip 选项以及它们如何提供帮助. -- Sandra Henry-stocker(作者) 为了节省一些磁盘空间并 ...

  6. linux 压缩文件小,技术|在 Linux 上压缩文件的 5 种方法

    在 Linux 系统上有很多可以用于压缩文件的工具,但它们的表现并不都是一样的,也不是所有的压缩效果都是一样的.在这篇文章中,我们比较其中的五个工具. 在 Linux 上有不少用于压缩文件的命令.最新 ...

  7. 利用WinRAR命令行压缩文件或文件夹

    利用WinRAR命令行压缩文件或文件夹 2007-11-14 15:07 压缩文件夹winrar.exe a -ag -k -r -s -ibck c:/bak.rar c:/dat/ 压缩多个文件 ...

  8. c语言哈夫曼压缩文本,用哈夫曼压缩文件(C语言)

    用哈夫曼压缩文件(C语言) 用哈夫曼压缩文件(C语言) 2007-12-29 21:09:15| 分类: 编程 | 标签: |字号大中小 订阅 利用哈夫曼编码制作压缩软件,内容如下: #include ...

  9. java的ZipOutputStream压缩文件的两个问题(乱码和每次zip后文件md5变化)

    java的ZipOutputStream压缩文件的两个问题(乱码和每次zip后文件md5变化) 1.乱码问题可以使用org.apache.tools.zip 2.md5每次都变化只需要设置entry. ...

最新文章

  1. python之路-day11-迭代器闭包
  2. 你真的了解AI吗?AI将怎么改变我们的生活?
  3. [转]孙鑫VC教程例子代码1---Windows程序内部运行原理
  4. tf.clip_by_value
  5. Css标题中图片居中,图片居中:任意图片在div里的上下垂直都居中!
  6. 重装mysql出现无法start service的问题
  7. 【转】DATAGRIDVIEW控制
  8. 如何获取 docker 容器(container)的 ip 地址
  9. Java String的内存机制
  10. c++ 队列_RabbitMQ的死信与延迟队列,你真的会用吗?
  11. excel表用office2007一保存就闪退
  12. 笔记本电脑频繁自动重启_电脑一直自动重启怎么办 电脑一直自动重启的原因和解决办法...
  13. C# ActiveX 网页打包验证自动升级
  14. python按字母顺序排列_在python中检查字符串是否按字母顺序排列
  15. MFC从字体名获取字库文件路径(从宋体获取到simsun.ttc)
  16. Mac 调节鼠标移速
  17. 云服务器部署web项目 超详细步骤 腾讯云 阿里云
  18. 完美世界16.65亿出售院线业务;共享床位涉黄被下线;宜家创始人去世丨价值早报
  19. k8s搭建dashboard权限问题:forbidden “default“
  20. 红米k30 允许调用gpu调试层_红米击败自家小米,夺得性能榜第四,红米K30 Pro究竟靠什么?...

热门文章

  1. cmd命令行用copy和xcopy实现文件拷贝/目录复制
  2. ADI Blackfin DSP处理器-BF533的开发详解10:SPORT-IIS口驱动和应用(含源代码)
  3. u盘安装CentOS(linux)的步骤(含双系统)
  4. PHP读取纯真IP地址数据库
  5. 液压与计算机控制,(液压和 与气压传动)第四章计算机数字控制.ppt
  6. 《SVN宇宙版教程》:第九章 Subclipse必备技能
  7. 民政部:汶川地震救灾困难比较多
  8. 关于word宏的使用
  9. 基于Java毕业设计学生选拔系统源码+系统+mysql+lw文档+部署软件
  10. Scala学习(一) 快速入门