2012-02-13 86 views
0

我想从用户指定的部分数量(n)的服务器下载文件。所以有一个x字节的文件被分成n个部分,每个部分同时下载整个文件的一部分。我正在使用线程来实现这一点,但我之前并没有使用过http,也没有真正理解下载文件是如何工作的。我已经阅读了它,似乎需要使用“范围”,但我不知道如何下载不同的部分并能够在不破坏数据的情况下追加它们。需要帮助使用java线程下载文件部分

+0

你有没有在你的生活中见过这样的工具,可以让你通过'http'下载一个文件? – Jagger 2012-02-13 01:28:47

+0

它是一项家庭作业,我找不到任何信息来帮助我 – user1205853 2012-02-13 01:36:41

回答

0

(因为它是一个家庭作业我只会给你一个提示)

追加到一个单一的文件不会帮助你在所有的,因为这会搞乱数据。你有两个选择:从每个线程到一个单独的临时文件

  • 下载,然后合并以正确的顺序创建最终文件中的临时文件。这可能比较容易想象,但却是一种相当丑陋和低效的方法。

  • 不要拘泥于通常的流式语义 - 使用随机访问(1,2)将数据从每个线程直接写入输出文件的正确位置。

+0

谢谢你的回应。因此,采用更高效的方法,每个部分将同时复制文件的某些部分与类似的洪流?我一直使用HttpConnection对象来连接到URL,那么我会用什么对象类型来做这个随机访问?这是我需要的最后一点信息。我没有使用网络编程的经验。再次感谢 – user1205853 2012-02-13 02:03:22

+0

@ user1205853:看看我的答案中的两个链接。顺便说一句,随机文件访问是相当基本的 - 它没有太多的关系与网页编程... – thkala 2012-02-13 02:09:43

+0

精彩。我认为这些数字是参数哈哈 – user1205853 2012-02-13 02:22:40