Java创建Zip文件示例
package zipfile;
//java.util.zip包提供了数据压缩和解压缩的类
import java.io.*;
import java.util.zip.*;
public class Zip{
static final int BUFFER = 2048;
static boolean flag = false;
public static void main(String args[]) throws IOException{
File file = new File(args[0]);
FileInputStream file1 = new FileInputStream(ZipSubdirectory(file));
}
// ZipSubdirectory函数将一个指定目录(包括它子目录)压缩成一个同名压缩文件(这里称为"ORIGIN")
public static File ZipSubdirectory(File myDir) throws IOException{
// 创建缓冲输入流BufferedInputStream
BufferedInputStream origin = null;
// 创建ZipOutputStream对象,将向它传递希望写入文件的输出流
File zipFile = new File(myDir.getName() + ".zip");
FileOutputStream fos = new FileOutputStream(zipFile);
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(fos,
BUFFER));
// dirContents[]获取当前目录(myDir)所有文件对象(包括子目录名)
File dirContents[] = myDir.listFiles();
// 创建临时文件tempFile,使用后删除
File tempFile = null;
try{
// 处理当前目录所有文件对象,包括子目录
for(int i = 0;i < dirContents.length;i++){
// 使用递归方法将当前目录的子目录转成一个ZIP文件,并作为一个ENTRY加进"ORIGIN"
if(dirContents[i].isDirectory()){
tempFile = ZipSubdirectory(dirContents[i]);
flag = true;
}
// 如果当前文件不是子目录
else{
tempFile = dirContents[i];
// flag标记tempFile是否由子目录压缩成的ZIP文件
flag = false;
}
System.out.println("Compress file: " + tempFile.getName());
FileInputStream fis = new FileInputStream(tempFile);
origin = new BufferedInputStream(fis, BUFFER);
// 为被读取的文件创建压缩条目
ZipEntry entry = new ZipEntry(tempFile.getName());
byte data[] = new byte[BUFFER];
int count;
// 在向ZIP输出流写入数据之前,必须首先使用out.putNextEntry(entry); 方法安置压缩条目对象
out.putNextEntry(entry);
// 向ZIP 文件写入数据
while((count = origin.read(data, 0, BUFFER)) != -1){
out.write(data, 0, count);
}
// 关闭输入流
origin.close();
// tempFile是临时生成的ZIP文件,删除它
if(flag == true){
flag = tempFile.delete();
System.out.println("Delete file:" + tempFile.getName()+" "
+ flag);
}
}
}catch(Exception e){
System.out.println(e);
}
// 递归返回
out.close();
return zipFile;
}
}
转载于:https://www.cnblogs.com/CUCmehp/archive/2008/10/26/1320028.html
Java创建Zip文件示例相关推荐
- java 操作Zip文件(压缩、解压、加密)
java 操作Zip文件(压缩.解压.加密) 依赖:点击下载 package com.zxl.test;import net.lingala.zip4j.model.ZipParameters; im ...
- 利用java进行zip文件解压缩
利用java进行zip文件解压缩 本文利用Java的zip包中的ZipFile和ZipEntry两个类,获取到压缩包中的所有文件,并将压缩文件通过InputStream写入一个byte数组,再将该by ...
- Java实现Zip文件解压
2019独角兽企业重金招聘Python工程师标准>>> ##1. 两种java实现zip文件解压方式 使用JDK的原生类java.util.zip,上代码: import java. ...
- java zip文件操作,java 关于 zip 文件 的 基本操作
这里用的是appache的包 为了防止文件中文名乱码问题 java 操作 .zip 文件 压缩文件 解压文件 删除文件夹等 package com.gaeainfo.toponymbase.uti ...
- java下载zip文件损坏_使用Java下载.zip文件会导致损坏的.zip文件?
我写了这个方法来下载最新的Selenium Chrome驱动程序,它不起作用.它导致损坏的.zip文件.任何人都可以发现我的错误在哪里?使用Java下载.zip文件会导致损坏的.zip文件? priv ...
- python读xml文件生成.h头文件_Python创建xml文件示例
Python创建xml文件示例 这里有新鲜出炉的 Python 入门,程序狗速度看过来! Python 编程语言 Python 是一种面向对象.解释型计算机程序设计语言,由 Guido van Ros ...
- Java实现Zip文件的解压和压缩_ZipUtil
这是一个关于Java的zip文件的解压和压缩工具类,里面除了解压和压缩还有删除.copy等其他功能. 在Java开发中,经常会遇到上传下载,有可能就会遇到解压,于是我就封装了工具类,方便使用. 在本文 ...
- JS创建ZIP文件,JSZip的使用
Hi I'm Shendi 最近编写压缩工具,需要使用js创建zip文件,使用 JSZip 插件 官网: https://stuk.github.io/jszip/ Github: https://g ...
- Java创建多级文件夹
Java创建多级文件夹 Java的File类坑巨多,就创建文件来说,多级创建和单级创建竟然不一样. 直接上API mkdir只能创建一个文件夹,而想创建多级文件夹需要用mkdirs,多了个s. 来来, ...
- java解压zip异常_java解压zip文件示例
若是使用Java自带的压缩工具包来实现解压缩文件到指定文件夹的功能,因为jdk提供的zip只能按UTF-8格式处理,而Windows系统中文件名是以GBK方式编码的,所以如果是解压一个包含中文文件名的 ...
最新文章
- iOS进阶之类别(Category)(9)
- vim trick之 vimrc更改立即生效
- php字符串截取自​定义函数
- Flask框架(SQLAlchemy(python3版本)中添加数据 )
- 删除msconfig启动项不打勾的东西
- FLV封装格式介绍及解析
- 超形象!著名的三角不等式演示动图!
- 建站用什么cms_我想做独立站,我应该用什么建站工具?
- Netty工作笔记0018---Selector介绍和原理
- 网络安全统计显示XSS和过时的软件是主要问题
- 硬,软连接,以及在windows中的用法
- 156.PHP多进程
- head first html与css 代码_手把手教你使用Flask轻松部署机器学习模型(附代码amp;链接) | CSDN博文精选...
- 强者的系统:高观点下的人生
- Image Signal Processing(ISP)-第三章-BCL, WB, Gamma的原理和软件实现
- 教你利用VMM虚拟机安装LEDE旁路由实现软路由超强功能的方法教程
- 训练MTCNN之前的环境以及依赖配置
- 2019复旦大学计算机分数线,复旦大学2019年各省各批次录取分数线和招生专业
- OSChina 周一乱弹 —— 论备份容灾的重要性
- 生活中的一些常用理论