class="java">
/**
* 解压缩
* @param warPath 包地址
* @param unzipPath 解压后地址
*/
public static void unzip(String warPath, String unzipPath) {
File warFile = new File(warPath);
try {
//获得输出流
BufferedInputStream bufferedInputStream = new BufferedInputStream(
new FileInputStream(warFile));
ArchiveInputStream in = new ArchiveStreamFactory()
.createArchiveInputStream(ArchiveStreamFactory.JAR,
bufferedInputStream);
JarArchiveEntry entry = null;
//循环遍历解压
while ((entry = (JarArchiveEntry) in.getNextEntry()) != null) {
if (entry.isDirectory()) {
new File(unzipPath, entry.getName()).mkdir();
} else {
OutputStream out = FileUtils.openOutputStream(new File(
unzipPath, entry.getName()));
IOUtils.copy(in, out);
out.close();
}
}
in.close();
} catch (FileNotFoundException e) {
System.err.println("未找到war文件");
} catch (ArchiveException e) {
System.err.println("不支持的压缩格式");
} catch (IOException e) {
System.err.println("文件写入发生错误");
}
}
/**
* 压缩
* @param destFile 创建的地址及名称
* @param zipDir 要打包的目录
*/
public static void zip(String destFile, String zipDir) {
File outFile = new File(destFile);
try {
outFile.createNewFile();
//创建文件
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(
new FileOutputStream(outFile));
ArchiveOutputStream out = new ArchiveStreamFactory()
.createArchiveOutputStream(ArchiveStreamFactory.JAR,
bufferedOutputStream);
if (zipDir.charAt(zipDir.length() - 1) != '/') {
zipDir += '/';
}
Iterator<File> files = FileUtils.iterateFiles(new File(zipDir),
null, true);
while (files.hasNext()) {
File file = files.next();
ZipArchiveEntry zipArchiveEntry = new ZipArchiveEntry(file,
file.getPath().replace(zipDir.replace("/", "\\"), ""));
out.putArchiveEntry(zipArchiveEntry);
IOUtils.copy(new FileInputStream(file), out);
out.closeArchiveEntry();
}
out.finish();
out.close();
} catch (IOException e) {
System.err.println("创建文件失败");
} catch (ArchiveException e) {
System.err.println("不支持的压缩格式");
}
}
public static void main(String[] args) {
// WarUtils.unzip("g:\\data.war", "g:\\data");
WarUtils.zip("g:\\cba.war", "g:\\data");
}
需要用到commons-io-2.0.1.jar commons-compress-1.5.jar
- commons-io-2.0.1.jar (155.8 KB)
- 下载次数: 0
- commons-compress-1.5.jar (250.2 KB)
- 下载次数: 0
网友 2014/11/25 16:04:39 发表
请问你这FileUtils类在哪,麻烦您给贴出来