1.生成zip

public static void main(String[] args) {
try {
// testZip("c:\\temp.txt", "c:\\temp4.zip");
// testZip("c:\\Result.txt", "c:\\temp4.zip"); //不然会被一个文件覆盖了. //压缩多个文件的关键: ZipOutputStream out 作为参数传递.
//一个流,否则存在覆盖的问题,即每次会new一个,所以外置.
ZipOutputStream zos = null;
zos = new ZipOutputStream(new FileOutputStream("c:\\temp5.zip")); testZip("c:\\temp.txt",zos);
testZip("c:\\Result.txt",zos); //外置
zos.closeEntry();
zos.close(); } catch (Exception e) {
e.printStackTrace();
}
} /**
* 重复压缩文件
* @param zipEntryName // 去掉String zipEntryName,
* @param filePath
* @param zipPath
* @throws Exception
*/
public static void testZip(String filePath,ZipOutputStream zos) throws Exception{ //压缩包
/*ZipOutputStream zos = null;*/ // BufferedOutputStream bos = null;
// File zipFile = new File(zipPath);
// if(zipFile.exists()==false){
/* zos = new ZipOutputStream(new FileOutputStream(zipPath));*/ // bos = new BufferedOutputStream(zos); //Buffer...
// }else{
//
// } File f = new File(filePath); // //create zip
FileInputStream fis = new FileInputStream(f);
// BufferedInputStream bis = new BufferedInputStream(fis); // set the file name in the .zip file
// zos.putNextEntry(new ZipEntry(zipEntryName));
zos.putNextEntry(new ZipEntry(f.getName()));
// set the declear
zos.setComment("by zip test!"); // byte[] b = new byte[1024];
// while (true) {
// int len = bis.read(b);
// if (len == -1)
// break;
// bos.write(b, 0, len);
// System.out.println(new String(b, 0, len));
// }
// bos.flush(); //这一行重要,否则txt是空白文件. byte[] buffer = new byte[1024];
int len = 0 ;
// 读取文件的内容,打包到zip文件
while ((len = fis.read(buffer)) > 0) {
zos.write(buffer, 0, len);
} fis.close();
/*zos.closeEntry();
zos.close();*/
}

2.解压缩

public static void main(String[] args) throws Exception {
// get a zip file instance
File file = new File("c:\\temp5.zip"); // get a ZipFile instance
ZipFile zipFile = new ZipFile(file); // create a ZipInputStream instance
ZipInputStream zis = new ZipInputStream(new FileInputStream(file)); // create a ZipEntry instance , lay the every file from
// decompress file temporarily
ZipEntry entry = null; // a circle to get every file
while ((entry = zis.getNextEntry()) != null) {
System.out.println("decompress file :" + entry.getName()); // define the path to set the file
File outFile = new File("c:\\zip\\"
+ entry.getName()); // if the file's parent directory wasn't exits ,than
// create the directory
if (!outFile.getParentFile().exists()) {
outFile.getParentFile().mkdir();
} // if the file not exits ,than create the file
if (!outFile.exists()) {
outFile.createNewFile();
} // create an input stream 读文件
BufferedInputStream bis = new BufferedInputStream(
zipFile.getInputStream(entry)); // create an output stream 写文件
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(outFile));
byte[] b = new byte[1024];
while (true) {
int len = bis.read(b);
if (len == -1)
break;
bos.write(b, 0, len);
}
// close stream
bis.close();
bos.close();
}
zis.close();
}

java生成zip压缩文件,解压缩文件的更多相关文章

  1. java.util.zip压缩打包文件总结一:压缩文件及文件下面的文件夹

    一.简述 zip用于压缩和解压文件.使用到的类有:ZipEntry  ZipOutputStream 二.具体实现代码 package com.joyplus.test; import java.io ...

  2. PHP生成ZIP压缩文件

    PHP生成ZIP压缩文件 /* * 生成zip压缩文件 * $sourceDir:被压缩的文件夹或文件 * $outFileName:输出的压缩文件名称 * */ function createZip ...

  3. Java 的zip压缩和解压缩

    Java 的zip压缩和解压缩 好久没有来这写东西了,今天中秋节,有个东西想拿出来分享,一来是工作中遇到的问题,一来是和csdn问候一下,下面就分享一个Java中的zip压缩技术,代码实现比较简单,代 ...

  4. java直接生成zip压缩文件精简代码(跳过txt文件)

    /** * @param args */ public static void main(String[] args) throws Exception{ ZipOutputStream zos = ...

  5. Java操作zip压缩和解压缩文件工具类

    需要用到ant.jar(这里使用的是ant-1.6.5.jar) import java.io.File; import java.io.FileInputStream; import java.io ...

  6. java.util.zip压缩打包文件总结二: ZIP解压技术

    一.简述 解压技术和压缩技术正好相反,解压技术要用到的类:由ZipInputStream通过read方法对数据解压,同时需要通过CheckedInputStream设置冗余校验码,如: Checked ...

  7. C#压缩、解压缩文件(夹)(rar、zip)

    主要是使用Rar.exe压缩解压文件(夹)(*.rar),另外还有使用SevenZipSharp.dll.zLib1.dll.7z.dll压缩解压文件(夹)(*.zip).需要注意的几点如下: 1.注 ...

  8. Linux命令(十六) 压缩或解压缩文件和目录 zip unzip

    目录 1.命令简介 2.常用参数介绍 3.实例 4.直达底部 命令简介 zip 是 Linux 系统下广泛使用的压缩程序,文件压缩后扩展名为 ".zip". zip 命令用来将文件 ...

  9. php生成zip压缩文件的方法,支持文件和压缩包路径查找

    /* * new creatZip($_dir,$_zipName); *@ _dir是被压缩的文件夹名称,可使用路径,例 'a'或者'a/test.txt'或者'test.txt' *@ _zipN ...

随机推荐

  1. NodeJS 模块&函数

    NodeJS 模块&函数 nodejs的多文件操作通过模块系统实现,模块和文件一一对应.文件本身可以是javascript代码.JSON或编译过的C/C++扩展 基本用法 nodeJS通过ex ...

  2. 超详细 Spring @RequestMapping 注解使用技巧

    @RequestMapping 是 Spring Web 应用程序中最常被用到的注解之一.这个注解会将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上. 在这篇文章中,你将会看到 @R ...

  3. ftp修改上传后目录、文件权限问题 aix

    问题:在AIX操作系统中,用root用户ftp文件到AIX上后,文件的默认权限是rw-r-----,Oracle用户无法读取.有没有办法指定上传文件的权限呢? 环境: AIX 6.1 解决方法: 1. ...

  4. MySQL优化之like关键字

    1.%号不放最左边 无法使用索引了,开头是不确定的,MySQL也无法进行优化了,只能扫描表了. 2.使用覆盖索引 如果业务需要%就放开头我们也没办法,一般情况需求都是这样的,毕竟优化还是为业务服务的. ...

  5. 9 月份 GitHub 上最火的 JavaScript 开源项目!

    推荐 GitHub 上9 月份最受欢迎的 10 个 JavaScript 开源项目,在这些项目中,你有在用或用过哪些呢? 1.基于 Promise 的 HTTP 客户端 Axios https://g ...

  6. [Linux] - CentOS运行DotNet Web程序

    文章说明 在Linux(CentOS)是运行C#的Web应用程序,这里使用及讲解的是Jexus服务器安装及配置.非ASP.net Core 安装步骤 一.下载及安装Mono yum install y ...

  7. H5调用本地摄像头[转]

    http://www.cnblogs.com/GoodPingGe/p/4726126.html <!DOCTYPE html><html><head lang=&quo ...

  8. 【iOS】ARC-MRC下的单例及其应用

    单例的应用十分普遍,单例模式使一个类仅仅有一个实例. *易于供外界訪问. *方便控制实例个数,节约系统资源. *OC中的常见单例: 如:UIApplication,  NSNotificationCe ...

  9. tensorflow 批次读取文件内的数据,并将顺序随机化处理. --[python]

    使用tensorflow批次的读取预处理之后的文本数据,并将其分为一个迭代器批次: 比如此刻,我有一个处理之后的数据包: data.csv  shape =(8,10),其中这个结构中,前五个列为fe ...

  10. Android研发中对String的思考(源代码分析)

    1.经常使用创建方式思考: String text = "this is a test text "; 上面这一句话实际上是运行了三件事  1.声明变量 String text; ...