下面就是一个简单的例子
package test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.tools.zip.ZipOutputStream;
public class CompressToZip {
public void zip(String inputFileName) throws Exception {
String zipFileName = "d:\\批量打包.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();
System.out.println("新增目录元素 " + base + "/");
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 {
System.out.println("新增普通文件元素 " + base);
out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));
FileInputStream in = new FileInputStream(f);
int b;
while ((b = in.read()) != -1) {
out.write(b);
}
in.close();
}
}
public static void main(String[] args) {
CompressToZip test = new CompressToZip();
try {
test.zip("d:\\temp");
} catch (Exception e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
java实现文件解压缩,ZipInputStream,ZipOutputStream
// 设置压缩文件入口entry,为被读取的文件创建压缩条目 File tempFile = new File(fileArray[i].toString()); String rootStr = file.getPath(); String entryStr = null; // entry以相对路径的...
在使用Java对ZIP压缩文件进行解压的方式中有两种,一种是使用apache提供的ant.jar工具包,但是如果ZIP文件中含有中文名称的文件,在解压后,文件名将出现乱码,另一种是使用Java自身JDK中java.util.zip包下工具类,...
ZipOutputStream 压缩 乱码
下载文件的基本原理 Java中的文件下载是通过...使用Java压缩多个文件为zip包 Java中可以使用ZipOutputStream类将多个文件压缩成一个zip包,首先创建ZipOutputStream对象,然后逐个添加需要压缩的文件,最后关闭流即可。
网上的办法大多是——先解压,然后对解压目录替换文件,最后再重新压缩。该办法需要比较繁琐,且需要一个临时目录。 于是想找无需解压的方案。 后来找到利用 ZipInputStream、ZipOutputStream 实现该功能的办法。
java中通过ZipOutputStream和ZipInputStream实现了zip压缩和解压功能。java源码————资源共享,一起进步。
在压缩方面,代码使用了Java内置的java.util.zip包中的ZipOutputStream类,实现了对文件的压缩操作,支持将多个文件压缩成一个单独的ZIP文件。在解压缩方面,代码使用了ZipInputStream类,实现了对ZIP文件的解压缩...
Java操作zip压缩格式的开源项目,功能强大而且使用方便,能完全满足Java操作Zip压缩文件,官方网址为:http://www.lingala.net/zip4j/ 可以下载到jar包、源码和示例,好像没有提供API文档。 不过需要使用代理访问...
由于网络带宽有限,所以数据文件的压缩有利于数据在Internet上的快速传输,同时也节 ... zip压缩文件结构:一个zip文件由多个entry组成,每个entry有一个唯一的名称,entry的 数据项存储压缩数据。
通过对JDK的java.util.zip下的ZipInputStream和ZipOutputStream类进行改造,彻底解决压缩和解压缩文件时的中文文件名乱码问题。 包含已大好的jar包,以及一个如何使用的Demo程序。
//得到待压缩文件路径名 String entryname=filename.substring(filename.lastIndexOf("\\") 1); //得到文件名 entry=new ZipEntry(entryname); //实例化条目列表 zout.putNextEntry(entry); //将ZIP条目...
zip扮演着归档和压缩两个角色;gzip并不将文件归档,仅...ZipOutputStream :DeflaterOutputStream的一个子类,把数据压缩成Zip文件格式。 GZIPOutputStream :DeflaterOutputStream的一个子类,把数据压缩成GZip文件格
ZIP是一种较为常见的压缩形式,在Java中要想实现ZIP的压缩需要导入java.util.zip包,可以使用此包中的ZipFile、ZipOutputStream、ZipInputStream、ZipEntry几个类完成。 ZipOutputStream 实现文件的压缩 ...
基于GUI用IO流中的ZipOutputStream ,ZipInputStream实现文件的解压与压缩, 如文件解压函数如下 private void unZip(String zipFileName, String outputDirectory)throws Exception { InputStream in=null; ...
使用Java ZIPInputStream、ZIPOutputStream、ZIPEntity完成对文件、文件夹的压缩与解压缩的封装,代码清晰易懂
3.初始化输出流和压缩流:通过获取响应输出流和初始化ZipOutputStream来准备将文件写入压缩包。 4.循环处理文件:遍历文件映射关系,对每个文件执行以下步骤: 创建相应的文件夹路径,避免重复创建。 5.对文件名进行...
Java实现压缩与解压缩ZIP import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream;...
使用java压解有中文字符的文件乱码,apache项目中的ant.jar包可完美解决此问题,代码是用eclipse项目,项目下有ant.jar包,使用前请把ant.jar包导入.
//ZipOutputStream类:完成文件或文件夹的压缩 ZipOutputStream outf=new ZipOutputStream(new FileOutputStream(zipfile)); outf.setEncoding("gbk"); for(int i=0;i;i++){ FileInputStream in=...