java – 利用完整的网络容量下载文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 利用完整的网络容量下载文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1306字,纯文字阅读大概需要2分钟。
内容图文
![java – 利用完整的网络容量下载文件](/upload/InfoBanner/zyjiaocheng/723/acc4911826a64e8398a3d690e498216c.jpg)
我正在获取数据,给定一个URL,并尝试了这里描述的几个方法:How to download and save a file from Internet using Java?
我们的下载速度至少为2 MB / s,因此看到文件以56 KB / s的速度下载有点不舒服.使用浏览器,我们可以在几秒钟内获取50 MB文件,但使用上述方法需要几分钟.
我怎样才能利用我们快速连接的事实?我正在开发的应用程序远程获取数据以进行每日更新,并且数据通常在10-100 MB范围内,因此如果我们能够快速执行更新例程将会很好.
解决方法:
使用Java NIO(如下例所示):
URL website = new URL("http://cachefly.cachefly.net/100mb.test");
ReadableByteChannel rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream("test.test");
long x = System.currentTimeMillis();
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
System.out.println(System.currentTimeMillis()-x);
…导致我的下载时间为25秒 – Chrome完全在同一时间内(接近足够).如果你在任何“普通”操作系统(Windows,Mac,Linux)上运行,那么上面将使用文件系统缓存,这意味着它应该与执行相同工作的“本机”应用程序一样快(因为它是,对我来说至少.)
请注意,使用简单的循环来复制字节(pre-nio方法)会慢得多,因为它没有使用缓存 – 所以一定要使用上面的方法来获得最快的速度.
如果您使用上述方法看到截然不同的时间,那么我建议问题出在其他地方 – 例如外部限制Java流程的带宽(可能有一些奇怪的外部安全策略应该责备?)我当然看不到任何戏剧性的速度降低,因为你在这里看到上面的代码.
内容总结
以上是互联网集市为您收集整理的java – 利用完整的网络容量下载文件全部内容,希望文章能够帮你解决java – 利用完整的网络容量下载文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。