2012-02-13 84 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