Java 无法下载zip文件
我一直在努力使这段代码工作,也浏览了stackoverflow一段时间,但没有找到答案。希望你能帮忙 尝试从internet下载zip文件,但结果是zip文件为1KB 更新:我尝试了Long.MAX_值,但结果相同。我真的不确定出了什么问题。普通文本文件只适用于文件,而不适用于ZipFile。请帮忙Java 无法下载zip文件,java,zipfile,Java,Zipfile,我一直在努力使这段代码工作,也浏览了stackoverflow一段时间,但没有找到答案。希望你能帮忙 尝试从internet下载zip文件,但结果是zip文件为1KB 更新:我尝试了Long.MAX_值,但结果相同。我真的不确定出了什么问题。普通文本文件只适用于文件,而不适用于ZipFile。请帮忙 private static void testDownload() { try { URL website = new URL("http://www.sec.gov/A
private static void testDownload() {
try {
URL website = new URL("http://www.sec.gov/Archives/edgar/data/1027884/000102788418000013/0001027884-18-000013-xbrl.zip");
ReadableByteChannel rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream("C:\\0001027884-18-000013-xbrl.zip");
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
}catch(Exception e){
System.out.println("EXCEPTION: " + e.getMessage());
System.exit(2);
}
}
使用transferFrom可能比从源通道读取并写入此通道的简单循环更有效。许多操作系统可以直接将字节从源通道传输到文件系统缓存,而无需实际复制它们 注意:transferFrom中的第三个参数是要传输的最大字节数。Integer.MAX_值最多传输2^31字节,Long.MAX_值最多允许比现有任何文件大2^63字节 因此,在这里,当您指定1024时,我认为这就是zip文件大小为1KB的原因。请尝试指定Long.MAX_值
希望这能解决你的问题 好了,伙计们,终于根据ZipFile中的输出找到了问题
只需将HTTP转换为HTTPS,这就解决了问题1024字节,准确地说,这正是您告诉程序要做的;正在做什么?亲爱的Sahil的可能副本,谢谢。不过,我之前尝试过Long.MAX_值,但结果是一样的。1kb文件zip文件伙计们,我试过几个代码。仍然有相同的结果。它总是会生成一个1KB的zip文件,其中包含以下内容:301永久移动永久移动文档已移动。好的,所以浏览器会自动将请求转换为https,这就是我们能够从浏览器下载它的原因。