我需要抓取一个在线文件(比如http://www.example.com/information.asp
)并保存到一个目录中.我知道有几种方法可以一行一行地抓取和读取在线文件(URL),但是有没有一种方法可以使用Java下载并保存文件?
我需要抓取一个在线文件(比如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()
比从源通道读取并写入该通道的简单循环要高效得多.许多操作系统可以直接将字节从源通道传输到文件系统缓存,而无需实际复制它们.
更多信息请查看here.
Note:Transfer From中的第三个参数是要传输的最大字节数.Integer.MAX_VALUE
最多传输2^31字节,Long.MAX_VALUE
最多允许2^63字节(大于现有的任何文件).