有一个在线文件(如http://www.example.com/information.asp
)我需要抓取并保存到一个目录。我知道有几种方法可以逐行抓取和读取在线文件 (URL),但有没有办法只使用 Java 下载和保存文件?
给 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()
可能比从源 channel 读取并写入该 channel 的简单循环更有效。许多操作系统可以直接将字节从源 channel 传输到文件系统缓存中,而无需实际复制它们。
查看更多here .
注意:transferFrom 中的第三个参数是要传输的最大字节数。 Integer.MAX_VALUE
最多传输 2^31 个字节,Long.MAX_VALUE
最多允许 2^63 个字节(比现有的任何文件都大)。
我是一名优秀的程序员,十分优秀!