我试图用Java解压缩文件并将所有内容添加到数组列表而不是写入磁盘。我遇到的问题是我将某个路径传递给zip文件,然后当它读取zip文件并将文件添加到列表中时 - 当我来处理文件时,他们在我的项目目录中有奇怪的路径不存在。
有人可以帮我吗? public void processZipFile(String path){
File file = new File(path);
file.setReadable(true);
ZipFile zip;
ArrayList<File> files = new ArrayList<File>();
try {
zip = new ZipFile(file);
Enumeration<ZipEntry> entries = (Enumeration<ZipEntry>) zip
.entries();
while (entries.hasMoreElements()) {
ZipEntry entry = entries.nextElement();
File f = new java.io.File(entry.getName());
allFiles.add(f);
}
} catch (ZipException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
答案 0 :(得分:0)
AFAIK,您的entry.getName()
将不会返回可用于打开文件的任何有用信息。请记住,这只是一个zip条目而不是物理文件。
我建议你使用zipFile.getInputStream为你的数组中的每个条目存储inputStreams,然后从输入流中提取你的内容,最后当它们对你没用时关闭它们。