1、用java.util.zip下的工具压缩
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class UtilZip {
public static void main(String[] args) throws Exception{
String srcFileName="D:/mail.eml";
String zipFileName="D:/mail.zip";
try {
zipFile(srcFileName,zipFileName);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void zipFile(String srcFileName,String zipFileName) throws Exception{
FileInputStream fis=null;
ZipOutputStream zos=null;
File srcFile=new File(srcFileName);
fis=new FileInputStream(srcFile);
zos=new ZipOutputStream(new FileOutputStream(new File(zipFileName)));
zos.putNextEntry(new ZipEntry(srcFile.getName()));
byte[] buffer=new byte[4028];
int readed=0;
while((readed=fis.read(buffer))!=-1){
zos.write(buffer,0, readed);
}
//这里一定要关闭流,否则压缩文件会损坏
zos.closeEntry();
zos.close();
fis.close();
}
}
2、用ant.jar包里面的工具压缩
import java.io.*;
import org.apache.tools.zip.ZipOutputStream;
public class AntZip {
public static void main(String arg[]) {
String srcFilePath = new String("D:/邮件");
String outFilename = new String("D:/mail.rar");
AntZip.zipFileByAnt(srcFilePath, outFilename);
}
public static void zipFileByAnt(String srcFilePath,String zipFileName) {
try {
File srcPath = new File(srcFilePath);
int fileCount = srcPath.listFiles().length;
String[] filenames = new String[fileCount];
byte[] buffer = new byte[1024];
File[] files = srcPath.listFiles();
for (int i = 0; i < fileCount; i++) {
filenames[i] = srcPath.getPath() + File.separator + files[i].getName();
}
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
out.setEncoding("UTF-8");
FileInputStream fis=null;
for (int i = 0; i < filenames.length; i++) {
fis = new FileInputStream(filenames[i]);
out.putNextEntry(new org.apache.tools.zip.ZipEntry(files[i].getName()));
int readed;
while ((readed = fis.read(buffer)) > 0) {
out.write(buffer, 0, readed);
}
}
out.closeEntry();
out.close();
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
3、压缩文件
package jp.com.syspro.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream;
public class ZipFile {
public static void main(String[] args) {
zip("D:/Temp/DWR与界面开发", "D:/Temp/DWR与界面开发.zip");
}
public static void zip(String srcFile){
zip(srcFile,"");
}
public static void zip(String srcFile, String zipFile) {
File src = new File(srcFile);
if (src.exists()) {
// 压缩文件不存在时,压缩到当前目录
if ("".equals(zipFile) || zipFile == null) {
if (src.isDirectory()) {
zipFile = srcFile + ".zip";
} else {
zipFile = srcFile.split("\\.")[0] + ".zip";
}
} else {
if (!zipFile.contains(srcFile)) {
File zip = new File(zipFile);
if (!zip.getParentFile().exists()) {
zip.getParentFile().mkdirs();
}
} else {
// 压缩文件在被压缩的文件夹里面时,压缩到当前目录
zipFile = srcFile + ".zip";
}
}
zip(src, zipFile);
}
}
public static void zip(File file, String zipFile) {
try {
FileOutputStream fos = new FileOutputStream(zipFile);
ZipOutputStream zos = new ZipOutputStream(fos);
zip(zos, file, "");
zos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void zip(ZipOutputStream zos, File file, String base) {
zos.setEncoding("UTF-8");
if (file.isDirectory()) {
File[] files = file.listFiles();
try {
zos.putNextEntry(new ZipEntry(base + "/"));
base = base.length() == 0 ? "" : base + "/";
for (int i = 0; i < files.length; i++) {
zip(zos, files[i], base + files[i].getName());
}
} catch (IOException e) {
e.printStackTrace();
}
} else {
try {
zos.putNextEntry(new ZipEntry(base));
FileInputStream fis = new FileInputStream(file);
int readed = 0;
while ((readed = fis.read()) != -1) {
zos.write(readed);
}
zos.flush();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
分享到:
相关推荐
JAVA压缩解压JAVA压缩解压JAVA压缩解压JAVA压缩解压JAVA压缩解压
好用的文件压缩与解压代码
Java压缩及解压tar、tar.z格式文件, 需要apache的包ant-1.7.1.jar 这个自己去搜索下下载
java程序,压缩与解压rar文件. java程序,压缩与解压rar文件.
JAVA文件压缩与解压缩实践,java解压缩zip文件,Java源码
java压缩解压文件
JAVA文件压缩与解压缩实践(源代码+论文)
用java实现rar文件的压缩解压。
对zip文件进行解压缩工具类,以及jar包
代码实现解压,压缩linux下的GZ格式文件
java 文件zip 压缩与解压 可以直接调用
Java用GZIP压缩解压文件源码
使用 Java 语言实现并封装的创建 ZIP 格式的压缩文件并解压到指定目录和解压 ZIP 文件到指定目录的工具类。
java解压zip压缩文件,读取压缩文件中的内容并输出到输出文件中。
java中通过ZipOutputStream和ZipInputStream实现了zip压缩和解压功能。java源码————资源共享,一起进步。
使用java解压缩文件,并获取压缩文件中的文件名称,使用多线程,提高效率
java操作压缩文件和解压文件实例代码(经测试),把jar文件导入到项目里。源代码根据注释修改下路径就能用了
java压缩文件及解压的算法。方法使用见main函数
安卓端java代码实现对文件的压缩与解压