java 中压缩与解压

本文介绍了一个名为UnZip的Java类,该类用于解压缩.zip格式的文件。通过使用FileInputStream和ZipInputStream,UnZip类能够遍历压缩文件中的每一个条目并将其解压到指定的目标路径。

package com.common.util;

import java.io.*;
import java.util.ArrayList;
import java.util.zip.*;

public class UnZip {

public static int iCompressLevel; //压缩比 取值范围为0~9

public static boolean bOverWrite; //是否覆盖同名文件 取值范围为True和False

private static ArrayList allFiles = new ArrayList();

public static String sErrorMessage;

public static ArrayList unZip(String zipPathFile, String DestPath) {
ArrayList allFileName = new ArrayList();
try {
//先指定压缩档的位置和档名,建立FileInputStream对象
FileInputStream in = new FileInputStream(zipPathFile);
//将fins传入ZipInputStream中
ZipInputStream zin = new ZipInputStream(in);
ZipEntry ent = null;
byte ch[] = new byte[256];
while ((ent = zin.getNextEntry()) != null) {
File zfile = new File(DestPath + ent.getName());
File fpath = new File(zfile.getParentFile().getPath());
if (ent.isDirectory()) {
if (!zfile.exists())
zfile.mkdirs();
zin.closeEntry();
} else {
if (!fpath.exists())
fpath.mkdirs();
FileOutputStream fouts = new FileOutputStream(zfile);
int i;
allFileName.add(zfile.getAbsolutePath());
while ((i = zin.read(ch)) != -1)
fouts.write(ch, 0, i);
zin.closeEntry();
fouts.close();
}
//System.out.println("解压文件: " + ent.getName() + zipPathFile);
}
in.close();
zin.close();
sErrorMessage = "OK";
} catch (Exception e) {
System.err.println("Extract error:" + e.getMessage());
sErrorMessage = e.getMessage();
}
allFiles.clear();
System.out.println("完成");
return allFileName;
}

public static void main(String[] args) {

UnZip.unZip("c://order_20.rar", "c://un//");

}
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值