Java建立Zip压缩文件的代码实例

Java代码
  1. import java.io.*;
  2. import java.util.zip.*;
  3. class Zip {
  4. public static void main(String args[]) throws IOException {
  5. byte b[] = new byte[512];
  6. ZipOutputStream zout = new ZipOutputStream(System.out);
  7. for(int i = 0; i < args.length; i ++) {
  8. InputStream in = new FileInputStream(args[i]);
  9. ZipEntry e = new ZipEntry(args[i].replace(File.separatorChar,'/'));
  10. zout.putNextEntry(e);
  11. int len=0;
  12. while((len=in.read(b)) != -1) {
  13. zout.write(b,0,len);
  14. }
  15. zout.closeEntry();
  16. print(e);
  17. }
  18. zout.close();
  19. }
  20. public static void print(ZipEntry e){
  21. PrintStream err = System.err;
  22. err.print("added " + e.getName());
  23. if (e.getMethod() == ZipEntry.DEFLATED) {
  24. long size = e.getSize();
  25. if (size > 0) {
  26. long csize = e.getCompressedSize();
  27. long ratio = ((size-csize)*100) / size;
  28. err.println(" (deflated " + ratio + "%)");
  29. }
  30. else {
  31. err.println(" (deflated 0%)");
  32. }
  33. }
  34. else {
  35. err.println(" (stored 0%)");
  36. }
  37. }
  38. }
import java.io.*;
import java.util.zip.*;
class Zip {
public static void main(String args[]) throws IOException {
byte b[] = new byte[512];
ZipOutputStream zout = new ZipOutputStream(System.out);
for(int i = 0; i < args.length; i ++) {
InputStream in = new FileInputStream(args[i]);
ZipEntry e = new ZipEntry(args[i].replace(File.separatorChar,'/'));
zout.putNextEntry(e);
int len=0;
while((len=in.read(b)) != -1) {
zout.write(b,0,len);
}
zout.closeEntry();
print(e);
}
zout.close();
}
public static void print(ZipEntry e){
PrintStream err = System.err;
err.print("added " + e.getName());
if (e.getMethod() == ZipEntry.DEFLATED) {
long size = e.getSize();
if (size > 0) {
long csize = e.getCompressedSize();
long ratio = ((size-csize)*100) / size;
err.println(" (deflated " + ratio + "%)");
}
else {
err.println(" (deflated 0%)");
}
}
else {
err.println(" (stored 0%)");
}
}
}

压缩文件代码:

Java代码
  1. import java.io.*;
  2. import java.util.zip.*;//ZipOutputStream这个流在这里
  3. import java.util.*;
  4. public class ZipOutputStreamTest
  5. {
  6. public static void main(String[] args) throws Exception
  7. {
  8. File f = new File("a.jpg");
  9. FileInputStream fis = new FileInputStream(f);
  10. BufferedInputStream bis = new BufferedInputStream(fis);
  11. byte[] buf = new byte[1024];
  12. int len;
  13. FileOutputStream fos = new FileOutputStream(f.getName()+".zip");
  14. BufferedOutputStream bos = new BufferedOutputStream(fos);
  15. ZipOutputStream zos = new ZipOutputStream(bos);//压缩包
  16. ZipEntry ze = new ZipEntry(f.getName());//这是压缩包名里的文件名
  17. zos.putNextEntry(ze);//写入新的 ZIP 文件条目并将流定位到条目数据的开始处
  18. while((len=bis.read(buf))!=-1)
  19. {
  20. zos.write(buf,0,len);
  21. zos.flush();
  22. }
  23. bis.close();
  24. zos.close();
  25. }
  26. }
import java.io.*;
import java.util.zip.*;//ZipOutputStream这个流在这里
import java.util.*;
public class ZipOutputStreamTest
{public static void main(String[] args) throws Exception{File f = new File("a.jpg");FileInputStream fis = new FileInputStream(f);BufferedInputStream bis = new BufferedInputStream(fis);byte[] buf = new byte[1024];int len;FileOutputStream fos = new FileOutputStream(f.getName()+".zip");BufferedOutputStream bos = new BufferedOutputStream(fos);ZipOutputStream zos = new ZipOutputStream(bos);//压缩包ZipEntry ze = new ZipEntry(f.getName());//这是压缩包名里的文件名zos.putNextEntry(ze);//写入新的 ZIP 文件条目并将流定位到条目数据的开始处while((len=bis.read(buf))!=-1){zos.write(buf,0,len);zos.flush();}bis.close();zos.close(); }
}

压缩文件夹代码:

Java代码
  1. import java.io.File;
  2. import org.apache.tools.zip.ZipOutputStream; //这个包在ant.jar里,要到官方网下载
  3. import java.io.FileInputStream;
  4. import java.io.FileOutputStream;
  5. import java.util.zip.ZipInputStream;
  6. import java.util.zip.ZipEntry;
  7. public class CompressBook {
  8. public CompressBook() {}
  9. /**//*
  10. * inputFileName 输入一个文件夹
  11. * zipFileName 输出一个压缩文件夹
  12. */
  13. public void zip(String inputFileName) throws Exception {
  14. String zipFileName = "c:\\test.zip"; //打包后文件名字
  15. System.out.println(zipFileName);
  16. zip(zipFileName, new File(inputFileName));
  17. }
  18. private void zip(String zipFileName, File inputFile) throws Exception {
  19. ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
  20. zip(out, inputFile, "");
  21. System.out.println("zip done");
  22. out.close();
  23. }
  24. private void zip(ZipOutputStream out, File f, String base) throws Exception {
  25. if (f.isDirectory()) {
  26. File[] fl = f.listFiles();
  27. out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "/"));
  28. base = base.length() == 0 ? "" : base + "/";
  29. for (int i = 0; i < fl.length; i++) {
  30. zip(out, fl[i], base + fl[i].getName());
  31. }
  32. }else {
  33. out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));
  34. FileInputStream in = new FileInputStream(f);
  35. int b;
  36. System.out.println(base);
  37. while ( (b = in.read()) != -1) {
  38. out.write(b);
  39. }
  40. in.close();
  41. }
  42. }
  43. public static void main(String [] temp){
  44. CompressBook book = new CompressBook();
  45. try {
  46. book.zip("c:\\c");//你要压缩的文件夹
  47. }catch (Exception ex) {
  48. ex.printStackTrace();
  49. }
  50. }
  51. }
import java.io.File;
import org.apache.tools.zip.ZipOutputStream; //这个包在ant.jar里,要到官方网下载
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipEntry;
public class CompressBook {public CompressBook() {}/**//** inputFileName 输入一个文件夹* zipFileName 输出一个压缩文件夹*/public void zip(String inputFileName) throws Exception {String zipFileName = "c:\\test.zip"; //打包后文件名字System.out.println(zipFileName);zip(zipFileName, new File(inputFileName));}private void zip(String zipFileName, File inputFile) throws Exception {ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));zip(out, inputFile, "");System.out.println("zip done");out.close();}private void zip(ZipOutputStream out, File f, String base) throws Exception {if (f.isDirectory()) {File[] fl = f.listFiles();out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "/"));base = base.length() == 0 ? "" : base + "/";for (int i = 0; i < fl.length; i++) {zip(out, fl[i], base + fl[i].getName());}}else {out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));FileInputStream in = new FileInputStream(f);int b;System.out.println(base);while ( (b = in.read()) != -1) {out.write(b);}in.close();}}public static void main(String [] temp){CompressBook book = new CompressBook();try {book.zip("c:\\c");//你要压缩的文件夹}catch (Exception ex) {ex.printStackTrace();}}
}

转载于:https://blog.51cto.com/daheyuan/1140900

Java建立Zip压缩文件的代码实例相关推荐

  1. java实现zip压缩文件(同一文件夹下的多个文件夹打成一个zip包)

    这2个工具类都推荐使用统一个场景的不通过写法 推荐第一种 package com.gblfy.test;import java.io.BufferedInputStream; import java. ...

  2. zip4j -- Java处理zip压缩文件

    ZIP4J,作为解决了我的问题的终极解决方案,本来一开始在搜索引擎上就看到了它的踪迹,但因天朝的网络环境问题,zip4j的官网一直无法访问,最终使我多走了好多冤枉路,期间试过JDK的zip包,试过Ap ...

  3. php 建立zip压缩文件,如何使用PHP创建zip压缩文件

    使用压缩文件可以节省磁盘空间:压缩文件较小,便于网络传输php 压缩文件,效率高. 本文向您介绍了如何使用PHP创建zip压缩文件,希望对大家有所帮助. PHP中有一个ZipArchive类php 压 ...

  4. java加密文件夹_使用java.util.zip压缩文件夹,支持加密,增加描述

    导读热词 下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. import java.io.File; import java.io.File ...

  5. java实现zip压缩文件 (一)

    网上查了许久,最后发现三种不错的方法: 1.jdk自带的包java.util.zip.ZipOutputStream,不足之处,文件(夹)名称带中文时, 出现乱码问题,实现代码如下: /**   * ...

  6. ABAP 生成ZIP压缩文件的代码

    DATA : IZIP        TYPE  REF  TO CL_ABAP_ZIP ,       CONT        TYPE XSTRING ,       XZIP_FILE   TY ...

  7. java 生成zip如法打开_Java创建ZIP压缩文件的方法

    本文实例讲述了Java创建ZIP压缩文件的方法.分享给大家供大家参考.具体如下: 这里注意:建议使用org.apache.tools.zip.*包下相关类,否则可能会出现中文乱码问题. /** * 压 ...

  8. java zip压缩文件

    java 生成zip压缩文件 1.zip压缩文件 文章目录 java 生成zip压缩文件 一.引入jar包 二.工具类 1.有密码压缩 2.无密码压缩 3. 解压方法 三.示例 3.1.压缩前 3.2 ...

  9. PHP 4.4.7 中用 PEAR 类库操作 ZIP 压缩文件

    运行 pear install Archive_Tar 命令可以安装 PEAR 的 Tar 的操作类,但是 Tar 文件是个打包归档文件,并没有压缩而使文件占用的空间减少.而运行 pear insta ...

最新文章

  1. jstl mysql_java – jsp jstl sql与mysql中的奇怪行为
  2. getresource 路径转义_java中的相对路径和绝对路径
  3. python识别鼠标在excel中选中的区域_[Excel技巧] 提高你工作效率的9个Excel技巧,职场新人必备...
  4. 瀏覽器擴展──釋放你的個性
  5. java中的linearnumexpr,java - Cplex中的上限和下限等于0.0(在cplex中) - 堆栈内存溢出...
  6. 配置绿色版的editplus
  7. 按键精灵修改html内容,按键精灵批量开网页点击
  8. 一定要记住这20种PS技术!来美化你的照片
  9. 二叉树的python实现
  10. Operator 基础原理和概念
  11. 新生儿小名大全:农历三月出生的女孩小名
  12. 什么是计算机技术作文500字,关于电脑的作文500字
  13. 熔断漏洞和幽灵漏洞_崩溃和幽灵:发现新的英特尔CPU漏洞
  14. 下载QQ空间鼠标图标方法
  15. 微信小程序-001-抽签功能
  16. linux va list,vsprintf函数以及va_list使用详解
  17. Hive alter column
  18. python用循环打出阶梯图形_Python制图你真的会吗?一文学会如何绘制漂亮的阶梯图...
  19. Bellhop-水平海底计算案例
  20. 【运筹学】企业最重要的部分-预测和决策

热门文章

  1. oracle内置函数 wmsys.wm_concat使用
  2. 点号“·”的显示 替代 ul li 的功能
  3. 决策树ID3与C4.5
  4. 在ccs中添加芯片_985博导团队重大成果,涉及隐私保护领域,已在腾讯与京东、快手的业务中应用...
  5. Android学习之Activity
  6. Python中TypeError: ‘str‘ object is not callable
  7. SpringBoot连接Redis服务出现Command timed out
  8. TraceEventsDB event(跟踪事件)总结
  9. r语言 fourth entry_第四篇 语言学习的自然顺序
  10. linux脚本 let,通过shell 脚本查看服务器的时时流量