如何使用 Java 从 Internet 下载和保存文件?

新手上路,请多包涵

有一个在线文件(例如 http://www.example.com/information.asp )我需要抓取并保存到一个目录中。我知道有几种方法可以逐行抓取和阅读在线文件 (URL),但是有没有一种方法可以使用 Java 下载和保存文件?

原文由 echoblaze 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 628
2 个回答

试试 Java NIO

 URL website = new URL("http://www.website.com/information.asp");
ReadableByteChannel rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream("information.html");
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);

使用 transferFrom() 可能 比从源通道读取并写入该通道的简单循环更有效。许多操作系统可以将字节直接从源通道传输到文件系统缓存中,而无需实际复制它们。

在这里 查看更多信息。

注意:transferFrom 中的第三个参数是要传输的最大字节数。 Integer.MAX_VALUE 最多传输 2^31 字节, Long.MAX_VALUE 最多允许 2^63 字节(大于现有的任何文件)。

原文由 dfa 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 Apache Commons IO 。这只是一行代码:

 FileUtils.copyURLToFile(URL, File)

原文由 Stackoverflow 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题