我正在尝试使用this answer中的示例解压缩.zip
文件夹,其摘录如下。
public static void unzip(File zipFile, File targetDirectory) throws IOException {
ZipInputStream zis = new ZipInputStream(
new BufferedInputStream(new FileInputStream(zipFile)));
try {
ZipEntry ze;
int count;
byte[] buffer = new byte[8192];
while ((ze = zis.getNextEntry()) != null) {
File file = new File(targetDirectory, ze.getName());
File dir = ze.isDirectory() ? file : file.getParentFile();
}
} finally {
zis.close();
}
}
但是,当我从MainActivity
类发出呼叫时,就像这样
File file = new File(context.getFilesDir() + "/ACPLUS.ZIP");
File targetDir = new File(context.getFilesDir() + "/DATA");
if (!targetDir.exists()) {
targetDir.mkdirs();
}
if (file.exists()) {
try {
ZIPHandler.unzip(file, targetDir);
} catch (IOException e) {
e.printStackTrace();
}
}
到达行时出现错误
while ((ze = zis.getNextEntry()) != null) {
我得到的错误是
java.io.EOFException
我找不到有关此问题的更多详细信息。
我的代码有问题吗?