【发布时间】:2014-06-06 15:50:49
【问题描述】:
我一直在尝试使用优秀的 java 在我的程序中提取一些 zip 文件并将它们放在正确的目录中。我一直在寻找这个以供参考: http://javabeginnerstutorial.com/code-base/how-to-extract-zip-file-with-subdirectories/
我当前的代码看起来像
String ziplocation = "/home/user/folder/";
String zipfile = "libraries.zip";
String liblocation = "/home/user/folder";
ZipEntry zipentry;
if (!zipentry.isDirectory())
{
File fileFile = new File(liblocation + "/" + zipentry.getName());
InputStream inputstream = zipfile.getInputStream(zipentry);
String str = new java.util.Scanner(inputstream).useDelimiter("/A").next();
BufferedWriter bw = new BufferedWriter(new FileWriter(fileFile));
bw.append(str);
bw.close();
}
一切似乎都正确地改编自上述参考,但是当我编译时它给了我:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method getInputStream(ZipEntry) is undefined for the type String
at Main.main(Main.java:53)
编辑:
我现在改成
String ziplocation = "/home/user/folder/zipfile.zip";
String liblocation = "/home/user/folder/";
File file = new File(ziplocation);
ZipFile zipfile = new ZipFile(file);
InputStream inputStream = new BufferedReader(new FileReader(zipfile));
ZipEntry zipentry;
if (!zipentry.isDirectory())
{
File fileFile = new File(liblocation + "/" + zipentry.getName());
InputStream inputstream = zipfile.getInputStream(zipentry);
String str = new java.util.Scanner(inputstream).useDelimiter("/A").next();
BufferedWriter bw = new BufferedWriter(new FileWriter(fileFile));
bw.append(str);
bw.close();
}
但是现在编译器的响应是:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Type mismatch: cannot convert from BufferedReader to InputStream
The constructor FileReader(ZipFile) is undefined
at Main.main(Main.java:48)
【问题讨论】:
-
在提到的文章中
zipfile是ZipFile zipfile = new ZipFile(file);。在您的代码中是String zipfile = "libraries.zip";。正如您的错误消息所说:“getInputStream(ZipEntry)类型的方法未定义String” -
Pshemo,为什么不回答一下呢?
标签: java zip extract subdirectory