java将文件压缩打包ZIP
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FileOutputStream out = new FileOutputStream(zipfile);
//传入文件输出流对象,创建ZIP数据输出流对象
ZipOutputStream zipOut = new ZipOutputStream(out);
//循环待压缩的文件列表
for (int i = 0; i < files.length; i++) {
*指定文件路径可以是绝对路径,也可以是相对路径
*/
String files[] = { "e:/密码.txt"};
String zipFile2 = "e:/文件压缩包.zip";
boolean flag2 = zipFiles(files, zipFile2);
if (flag2) {
System.out.println("压缩成功");
byte[] buffer = new byte[512];
while ((nNumber = in.read(buffer)) != -1) {
zipOut.write(buffer, 0, nNumber);
}
//关闭创建的流对象
in.close();
} catch (IOException e) {
throws Exception {
boolean bf = true;
//根据文件路径构造一个文件实例
File ff = new File(zipfile);
//判断目前文件是否存在,如果不存在,则新建一个
if (!ff.exists()) {
ff.createNewFile();
}
//根据文件路径构造一个文件输出流
*/
/*
*采用ANT中ant.jar包的类可以解决中文乱码问题
*/
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream;
/**
*Module: ZipFileUtil.java
*Description:用zip对多个文件进行压缩
e.printStackTrace();
bf = fΒιβλιοθήκη Baidulse;
}
}
zipOut.close();
out.close();
return bf;
}
}
files[i].lastIndexOf('/') + 1, files[i].length());
//创建指向压缩原始文件的入口
ZipEntry entry = new ZipEntry(fileName);
zipOut.putNextEntry(entry);
//向压缩文件中输出数据
int nNumber = 0;
*@Function: zipFiles
*@Description:多个文件的ZIP压缩
*@version : v1.0.0
*@author: pantp
*@Date:May 24, 2012
*</p>
*Modification History:
* Date Author Version Description
* ---------------------------------------------------------------------
* May 24, 2012 pantp v1.0.0 Create
*/
public static boolean zipFiles(String[] files, String zipfile)
*Company: xxx
*Version: 1.0.0
*Author: pantp
*Date: May 24, 2012
*/
public class ZipFileUtil {
public static void main(String[] args) throws Exception {
/*
*测试文件的ZIP压缩
} else {
System.out.println("压缩失败");
}
}
/**
*<p>
*@param files待压缩的文件列表例如,e:/文件1.txt, e:/file2.txt
*@param zipfile压缩后的文件名称例如,e:/多个文件压缩.zip
*@return boolean
*@throws :Exception
package com.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
*采用JDK API中自带的类时压缩的文件会出现中文乱码
File f = new File(files[i]);
if (!f.exists()) {
bf = false;
}
try {
//创建文件输入流对象
FileInputStream in = new FileInputStream(files[i]);
//得到当前文件的文件名称
String fileName = files[i].substring(
//传入文件输出流对象,创建ZIP数据输出流对象
ZipOutputStream zipOut = new ZipOutputStream(out);
//循环待压缩的文件列表
for (int i = 0; i < files.length; i++) {
*指定文件路径可以是绝对路径,也可以是相对路径
*/
String files[] = { "e:/密码.txt"};
String zipFile2 = "e:/文件压缩包.zip";
boolean flag2 = zipFiles(files, zipFile2);
if (flag2) {
System.out.println("压缩成功");
byte[] buffer = new byte[512];
while ((nNumber = in.read(buffer)) != -1) {
zipOut.write(buffer, 0, nNumber);
}
//关闭创建的流对象
in.close();
} catch (IOException e) {
throws Exception {
boolean bf = true;
//根据文件路径构造一个文件实例
File ff = new File(zipfile);
//判断目前文件是否存在,如果不存在,则新建一个
if (!ff.exists()) {
ff.createNewFile();
}
//根据文件路径构造一个文件输出流
*/
/*
*采用ANT中ant.jar包的类可以解决中文乱码问题
*/
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream;
/**
*Module: ZipFileUtil.java
*Description:用zip对多个文件进行压缩
e.printStackTrace();
bf = fΒιβλιοθήκη Baidulse;
}
}
zipOut.close();
out.close();
return bf;
}
}
files[i].lastIndexOf('/') + 1, files[i].length());
//创建指向压缩原始文件的入口
ZipEntry entry = new ZipEntry(fileName);
zipOut.putNextEntry(entry);
//向压缩文件中输出数据
int nNumber = 0;
*@Function: zipFiles
*@Description:多个文件的ZIP压缩
*@version : v1.0.0
*@author: pantp
*@Date:May 24, 2012
*</p>
*Modification History:
* Date Author Version Description
* ---------------------------------------------------------------------
* May 24, 2012 pantp v1.0.0 Create
*/
public static boolean zipFiles(String[] files, String zipfile)
*Company: xxx
*Version: 1.0.0
*Author: pantp
*Date: May 24, 2012
*/
public class ZipFileUtil {
public static void main(String[] args) throws Exception {
/*
*测试文件的ZIP压缩
} else {
System.out.println("压缩失败");
}
}
/**
*<p>
*@param files待压缩的文件列表例如,e:/文件1.txt, e:/file2.txt
*@param zipfile压缩后的文件名称例如,e:/多个文件压缩.zip
*@return boolean
*@throws :Exception
package com.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
*采用JDK API中自带的类时压缩的文件会出现中文乱码
File f = new File(files[i]);
if (!f.exists()) {
bf = false;
}
try {
//创建文件输入流对象
FileInputStream in = new FileInputStream(files[i]);
//得到当前文件的文件名称
String fileName = files[i].substring(