我需要解压一些文件,在谷歌搜索之后,我还没有找到任何实用工具来做这件事。我知道我可以用内置的java.uitl.zip.*类来做这件事,但是有没有什么实用工具可以让它变得更容易,最好是这样:
SomeClass.unzip("file_name.zip","target_directory");
或
SomeClass.zip("source_directory","target_file_name.zip",递归);
我不想处理流。只是文件,或者更好的只是文件名...
发布于 2009-08-06 09:07:25
问题"What’s a good compression library for Java?“中提到的Deflater/Inflater类怎么样?
我知道目前由Java提出的接口是基于流的,而不是“文件名”-based,但是根据下面关于Java compression的文章,围绕这一点构建一个实用程序类非常简单:
例如,基于文件名的解压缩函数将如下所示:
import java.io.*;
import java.util.zip.*;
public class UnZip {
final int BUFFER = 2048;
public static void main (String argv[]) {
try {
BufferedOutputStream dest = null;
FileInputStream fis = new
FileInputStream(argv[0]);
ZipInputStream zis = new
ZipInputStream(new BufferedInputStream(fis));
ZipEntry entry;
while((entry = zis.getNextEntry()) != null) {
System.out.println("Extracting: " +entry);
int count;
byte data[] = new byte[BUFFER];
// write the files to the disk
FileOutputStream fos = new
FileOutputStream(entry.getName());
dest = new
BufferedOutputStream(fos, BUFFER);
while ((count = zis.read(data, 0, BUFFER))
!= -1) {
dest.write(data, 0, count);
}
dest.flush();
dest.close();
}
zis.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}发布于 2009-08-06 09:07:09
也许Compress from Apache Commons能帮到你。
发布于 2009-08-06 21:50:02
jar是一个伪装的拉链。这是可用的吗?
https://stackoverflow.com/questions/1237733
复制相似问题