如何使用Java从互联网下载和保存文件?

2022-08-31 04:28:45

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


答案 1

试试 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 中的第三个参数是要传输的最大字节数。 将传输最多2 ^ 31字节,最多允许2 ^ 63字节(大于现有的任何文件)。Integer.MAX_VALUELong.MAX_VALUE


答案 2

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

FileUtils.copyURLToFile(URL, File)