下载的zip文件无效

时间:2014-08-29 12:46:33

标签: java zipfile

我尝试使用此代码从我的保管箱帐户下载(并稍后提取)一个zip文件

URL url = new URL("-");
HttpsURLConnection con = (HttpsURLConnection) url.openConnection();

try (InputStream stream = con.getInputStream()) {
    Files.copy(stream, Paths.get(parent.getAbsolutePath() + File.separator + "zippedCache.zip"));
}

我尝试下载的文件是包含其他文件夹的文件夹(空)。当我尝试打开压缩文件夹时,我得到的内容是"无法打开压缩压缩文件夹无效的文件夹" (使用谷歌翻译翻译)。当我解压缩它时,它是空的。

有谁可以解释这里的问题是什么?

编辑:此外,当我使用Java下载时,zip文件夹为空,但通过Web浏览器正常下载工作正常。

2 个答案:

答案 0 :(得分:1)

您应该尝试将InputStream部分读入byte数组并写入FileOutputStream。我认为这更简单。

示例:

InputStream stream = con.getInputStream();
byte[] buffer = new byte[4096];
FileOutputStream out = new FileOutputStream("anything.zip");
while (stream.read(buffer) != -1) {
    out.write(buffer);
}

答案 1 :(得分:0)

请使用HttpURLConnection再次验证您的代码。这应该可以解决。

要使用Https,您需要urlConnection.setSSLSocketFactory或类似内容。