1. package com.lanp;
  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.FileNotFoundException;
  7. import java.io.FileOutputStream;
  8. import java.io.IOException;
  9. import java.util.zip.ZipEntry;
  10. import java.util.zip.ZipOutputStream;
  11. /**
  12. * 将文件打包成ZIP压缩文件
  13. * @author LanP
  14. * @since 2012-3-1 15:47
  15. */
  16. public final class FileToZip {
  17. private FileToZip() {
  18. }
  19. /**
  20. * 将存放在sourceFilePath目录下的源文件,打包成fileName名称的ZIP文件,并存放到zipFilePath。
  21. * @param sourceFilePath 待压缩的文件路径
  22. * @param zipFilePath    压缩后存放路径
  23. * @param fileName       压缩后文件的名称
  24. * @return flag
  25. */
  26. public static boolean fileToZip(String sourceFilePath,String zipFilePath,String fileName) {
  27. boolean flag = false;
  28. File sourceFile = new File(sourceFilePath);
  29. FileInputStream fis = null;
  30. BufferedInputStream bis = null;
  31. FileOutputStream fos = null;
  32. ZipOutputStream zos = null;
  33. if(sourceFile.exists() == false) {
  34. System.out.println(">>>>>> 待压缩的文件目录:" + sourceFilePath + " 不存在. <<<<<<");
  35. } else {
  36. try {
  37. File zipFile = new File(zipFilePath + "/" + fileName + ".zip");
  38. if(zipFile.exists()) {
  39. System.out.println(">>>>>> " + zipFilePath + " 目录下存在名字为:" + fileName + ".zip" + " 打包文件. <<<<<<");
  40. } else {
  41. File[] sourceFiles = sourceFile.listFiles();
  42. if(null == sourceFiles || sourceFiles.length < 1) {
  43. System.out.println(">>>>>> 待压缩的文件目录:" + sourceFilePath + " 里面不存在文件,无需压缩. <<<<<<");
  44. } else {
  45. fos = new FileOutputStream(zipFile);
  46. zos = new ZipOutputStream(new BufferedOutputStream(fos));
  47. byte[] bufs = new byte[1024*10];
  48. for(int i=0;i<sourceFiles.length;i++) {
  49. // 创建ZIP实体,并添加进压缩包
  50. ZipEntry zipEntry = new ZipEntry(sourceFiles[i].getName());
  51. zos.putNextEntry(zipEntry);
  52. // 读取待压缩的文件并写进压缩包里
  53. fis = new FileInputStream(sourceFiles[i]);
  54. bis = new BufferedInputStream(fis,1024*10);
  55. int read = 0;
  56. while((read=bis.read(bufs, 0, 1024*10)) != -1) {
  57. zos.write(bufs, 0, read);
  58. }
  59. }
  60. flag = true;
  61. }
  62. }
  63. } catch (FileNotFoundException e) {
  64. e.printStackTrace();
  65. throw new RuntimeException(e);
  66. } catch (IOException e) {
  67. e.printStackTrace();
  68. throw new RuntimeException(e);
  69. } finally {
  70. // 关闭流
  71. try {
  72. if(null != bis) bis.close();
  73. if(null != zos) zos.close();
  74. } catch (IOException e) {
  75. e.printStackTrace();
  76. throw new RuntimeException(e);
  77. }
  78. }
  79. }
  80. return flag;
  81. }
  82. /**
  83. * 将文件打包成ZIP压缩文件,main方法测试
  84. * @param args
  85. */
  86. public static void main(String[] args) {
  87. String sourceFilePath = "C:\\home\\lp20120301";
  88. String zipFilePath = "C:\\home";
  89. String fileName = "lp20120301";
  90. boolean flag = FileToZip.fileToZip(sourceFilePath, zipFilePath, fileName);
  91. if(flag) {
  92. System.out.println(">>>>>> 文件打包成功. <<<<<<");
  93. } else {
  94. System.out.println(">>>>>> 文件打包失败. <<<<<<");
  95. }
  96. }
  97. }

java将文件打包成ZIP压缩文件的工具类实例的更多相关文章

  1. java批量下载,将多文件打包成zip格式下载

    现在的需求的: 根据产品族.产品类型,下载该产品族.产品类型下面的pic包: pic包是zip压缩文件: t_product表: 这些包以blob形式存在另一张表中: t_imagefile表: 现在 ...

  2. 关于springmvc下服务器文件打包成zip格式下载功能

    关于springmvc下服务器文件打包成zip格式下载功能 2016年09月21日 11:22:14 toxic_guantou 阅读数:5731更多 个人分类: 技术点存储   版权声明:本文为博主 ...

  3. JAVA从服务器下载文件根据Url把多文件打包成ZIP下载

    注意: 1. String filename = new String(“xx.zip”.getBytes(“UTF-8”), “ISO8859-1”);包装zip文件名不发生乱码.  2.一定要注意 ...

  4. java批量将多文件打包成zip格式

    public void createzip(){ List<File> nFileList = new ArrayList<File>(); nFileList.add(new ...

  5. pyinstall python文件打包成二进制exe文件

    pycharm + python3 + win7 1 pip install pyinstall  (官网) 2 准备 .py 文件 3 具体例子 from PyQt5.QtWidgets impor ...

  6. 如何将编译后的文件打包成jar文件

    如果需要修改像spring和dubbo中的jar包源码,修改后怎么打包呢? 如下: 1.win+r进入命令行: 2.找到需要打包的class文件: 3.jar -cvf [jar包的名字] [需要打包 ...

  7. 将Java应用程序打包成可执行的Jar包

    可以将多个class文件打包为jar包,在指定程序入口点情况下,可以用 java –jar jar包名称 的方式调用jar包内主类的main函数. 程序源代码如下: //Math.java publi ...

  8. 把java文件打包成.jar (jar命令详解)

    把java文件打包成.jar (jar命令详解) 先打开命令提示符(win2000或在运行框里执行cmd命令,win98为DOS提示符),输入jar Chelp,然后回车(如果你盘上已经有了jdk1. ...

  9. 手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件

    1.背景: 学习java时,教材中关于如题问题,只有一小节说明,而且要自己写麻烦的配置文件,最终结果却只能转换为jar文件.实在是心有不爽.此篇博客教你如何方便快捷地把java代码,打包成jar文件以 ...

随机推荐

  1. ASP.net 控件实现数据级联

    今天我们来一起用ASP.net实现一个级联,这个小不点应该是会经常用到的的. 咱们简单的画两个窗体.文本框会根据下拉框所选的内容显示不同的内容. 具体实现效果如下 步骤一: 准备工作,建立相应的数据库 ...

  2. HDU 4608 I-number 2013 Multi-University Training Contest 1 1009题

    题目大意:输入一个数x,求一个对应的y,这个y满足以下条件,第一,y>x,第二,y 的各位数之和能被10整除,第三,求满足前两个条件的最小的y. 解题报告:一个模拟题,比赛的时候确没过,感觉这题 ...

  3. 第11月第14天 opengl yuv beginners-tutorials

    1. Here is some snippets of code from my project 'movie player for iOS'. 1. fragment shader varying ...

  4. jquery.form.js 让表单提交更优雅

    jquery.form.js 让表单提交更优雅.可以页面不刷新提交表单,比jQuery的ajax提交要功能强大. 1.引入 <script src="/src/jquery-1.9.1 ...

  5. linux下搭建我的世界spongeforge 服务器 (海绵端)

    以下我用的都是1.10.2版本 且以下用的服务器连接管理软件有WinSCP.Xshell 5 首先,去下载一个MC1.10.2的纯净服务端,这个不会很难,百度一下! 比如我下的文件就叫minecraf ...

  6. 【原创】Linux环境下的图形系统和AMD R600显卡编程(2)——Framebuffer、DRM、EXA和Mesa简介【转】

    转自:http://www.cnblogs.com/shoemaker/p/linux_graphics02.html 1. Framebuffer Framebuffer驱动提供基本的显示,fram ...

  7. Linux中断(interrupt)子系统之五:软件中断(softIRQ)

    转自:http://blog.csdn.net/droidphone/article/details/7518428 软件中断(softIRQ)是内核提供的一种延迟执行机制,它完全由软件触发,虽然说是 ...

  8. 让linux中 history显示每条命令的操作时间及操作用户【转】

    一.history 中显示日期时间用户名的办法 history 命令,用来显示命令行上的操作记录 不过默认是仅显示操作命令行本身,而没有记录操作时间等细节 例如 这样,我们查找记录时很麻烦,想回顾下某 ...

  9. nginx 反向代理Apache

    2014年1月13日 18:15:25 同一个域名下,不同uri走不同的应用(不同的web根目录) 实现方式: Apache分别监听两个端口,对应不同的应用 nginx监听80端口,利用locatio ...

  10. 浙江省“一卡通”异地就医,C#调用省一卡通动态库

    前言,最近学习调用 浙江省一卡通业务,主要就是调用一个DLL,动态库文件,这个动态库是浙大网新研发的. 借着自学的机会把心得体会都记录下来,方便感兴趣的小伙伴学习与讨论. 内容均系原创,欢迎大家转载分 ...