我尝试使用此代码从我的保管箱帐户下载(并稍后提取)一个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浏览器正常下载工作正常。
答案 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
或类似内容。