【正文】
關鍵代碼如下: public static void loadDownInfo() throws Exception { FileInputStream fis = null。 ) { 湖南科技大學本科生畢業(yè)設計(論文) 30 //synchronized 關鍵字用于同步每個線程下載 synchronized () { = + len。 此模塊的關鍵點在于設定 HTTP 請求頭(用于分塊下載): (RANGE,bytes )。 } } catch (FileNotFoundException e) { ()。 //構建文件輸入流 rand=new RandomAccessFile(, rw)。 湖南科技大學本科生畢業(yè)設計(論文) 26 模塊流程 分析 在 Download 模塊中,系統(tǒng)首先要取得資源的網絡連接,然后獲得其響應碼。 (440, 200, 70, 30)。 cont = ()。 fireTableDataChanged()。如設定文件大小。 } //得到表格總的行數 public int getRowCount() { return ()。 for(int i=0。 //設置進度條水平放置 ()。 =new DownTableModel(table)?!? 最后在 DOS 下進行測試:輸入 java 、 javac、 java –version 等命令,分別輸出如圖 ,圖 ,圖 則表示配置成功。 Download: 做下載前的準備,包括連接資源,實現多線程,分配每個線程的下載量。在此單線程的工作模式下,如果把CPU 看作是一共有 100 個時間片的話, CPU 可能一直都只是花了其中的 10 個時間片來處理當前進程所要做的事情,只是用到了 CPU 的 10%的時間片,而其他時間都白白浪費了,當然,實際上 CPU 的工作模式還是做完一件事以后再去做另一件事,只是 CPU 的處理速度非???,很快就處理完成所請求的情事。它以抽象窗口工具包( AWT)為基礎使跨平臺應用程序可以使用任何可插拔的外觀風格。 304未修改??蛻舳嗽谑盏匠R?guī)響應之前,應準備接收一個或多個 1xx 響應。主要介紹本課題的背景和意義。downloader。 科 技 大 學 畢 業(yè) 設 計( 論 文 ) 題目 基于 HTTP 的多線程下載器 作者 學院 專業(yè) 學號 指導教師 科 技 大 學 畢業(yè)設計(論文)任務書 1 設計(論文)題目及專題: 基于 HTTP 的多線程下載器 2 學生設計(論文)時間:自 20xx 年 1 月 5 日開始至 20xx 年 6 月 6 日止 3 設計(論文)所用資源和參考資料: [1] 李鐘尉,馬文強,陳丹丹 .Java 從入門到精通 [M].清華大學出版社,20xx 年 [2] 孫衛(wèi)琴 .Java 面向對象編程( Java 開發(fā)專家) [M].電子工業(yè)出版社, 20xx年 [3] 克里舍納姆塞 ,范群波 .Web 協(xié)議與實踐( 網絡協(xié)議緩存技術和流量測量) .科學教育出版社 4 設計(論文)應完成的主要內容: 設計并實現基于紅彤彤批協(xié)議的多線程下載器,實現了斷點續(xù)傳、回收站、懸浮窗等基本功能。 Java。 第二章,系統(tǒng)開發(fā)相關概念和理論。 100繼續(xù)。 307臨時重定向。 Swing開發(fā)人員只用很少的代碼就可以利用 Swing 豐富、靈活的功能和模塊化組件來創(chuàng)建優(yōu)雅的用戶界面。 采用多線程可以很明顯的提高 CPU 的利用率。 DownloadThread: 實現下載,并進行數據流的 I/O 操作。 圖 湖南科技大學本科生畢業(yè)設計(論文) 14 圖 圖 第二步:安裝 Eclipse 從網站 Eclipse 版本,解壓至相應的位置。 ()。 return this。irow。 } public int getColumnCount() { //得到表格總的列數 return 。同樣需要更新的還有:連接線程狀態(tài),是否完成,下載百分比, 剩余時間等。 //更新表格 } } NewDownload 模塊設計 模塊流程分析 根據需求分析 ,當用戶點擊新建下載按鈕,則系統(tǒng)彈出一個新建下載對話框,里面包含一個輸入 url 的文本框,一個保存地址的文本框,一個保存文件名的文本框。 (null)。 //定義按鈕的監(jiān)聽事件 (new Cancel_AND_Sure_Lisener())。再根據響應嗎的值選擇下載模式。 [0]=new DownloadThread(this, 0, , 0, ,rand)。 } } } 啟動 線程的下載 ,關鍵代碼如下: //開始下載 public void beginDownload(){ for(int i=0。 //bytes為一個字符串: bytes=+(+)+ 。 //將讀取內容寫入文件 (b, 0, len)。 // 創(chuàng)建文件輸入流 fis = new FileInputStream(new File(E:/Workspaces/Eclipse/FinishDownload/properties/))。 } catch (IOException e) { } } 當系統(tǒng)啟動時 ,從文件中導入未完成下載任務。amp。 } DownloadThread 模塊的設計 DownloadThread 模塊主要用于進行具體下載的操作,如創(chuàng)建每個線程對目的文件連接,設定每個線程不同時刻的下載開始點和結束點,同時對 I/O 流進行操作,及時存儲文件的下載信息。 }else{ //分配每個線程的下載起始點和結束點 [i]=new DownloadThread(this, i, i*dataLen, i*dataLen+dataLen,ran_i)。 RandomAccessFile rand=null。 } } } } Download 模塊的設計 Download 模塊主要包含如下幾個子模塊: 獲得下載連接和選擇下載模式(單線程或多線程)、創(chuàng)建下載線程和分配每個線程下載塊的大小、啟動線程下載、計算每個線程已下載的大小和獲取已經完成的線程的數量。 (350, 200, 70, 30)。 ()。 //從 table中移除該行 //從全局界面的 download集合中移除該下載對象 Download down=(i)。 } 當啟動一個下載任務,系統(tǒng)必須給表格動態(tài)的設定一些列的值。 public DownTableModel(JTable table) { //構造函數 = table。 //刪除下載監(jiān)聽事件 (new ActionListener() { public void actionPerformed(ActionEvent e) { int row=()。 // 設置進度條的顏色為藍色 //該屬性確定進度條是否應該呈現進度字符串 (true)。 //定義 table table=new JTable()。% JAVA_HOME%\lib。 NewDownload: 創(chuàng)建新建下載的頁面,定義新建下載頁面的監(jiān)聽事件。 多線程的優(yōu)點 CPU 是以時間片的方式為進程分配 CPU 處理時間的,當一個進程以同步的方式去完成幾件事情時,此進程必須完成了第一件事情以后再做第二件事,如此按順序地向 CPU 請求完成要做的事情。 Swing 簡介 Swing 是一個用于開發(fā) Java 應用程序用戶界面的開發(fā)工具包。 302對象已臨時移動。 charset=GB2312 附:響應狀態(tài)碼的具體描述: 1xx信息提示 這些狀態(tài)代碼表示臨時的響應。 本論文具體章節(jié)安排如下: 第一章,引言。 關鍵詞 : HTTP;下載器; Java;多線程 ii ABSTRACT In today’s inter times, the downloader is the necessary tools for people. Now there are a lot of mainstream downloaders, such as the thunder,EasyMule,qq whirlwind and so on. Undoubtedly, all of these downloaders used the Multithread. The socalled thread program is the smallest unit of execution flow. Thread can be simple to understand as a download channel. So, single thread is to download with a single download channel, and downloading with multithread is to download with a lot of download channel at the same time. When a user selects a multithread download, download device will download resources according to the number of threads . Then download resources to local place at the same time. Obviously Multithread take a higher CPU utilization than single thread, so it can improve download speed. HTTP namely hypertext transfer protocol, it is a kind of detailed munication regulations between the world wide web server and browser, it is a data transfer protocol which can through the Inter transmitting the world wide web document transmission. HTTP is a mon work protocol. If you want to get to the Inter, the most basic is to follow the HTTP protocol. I use java program development language and eclipse development tool in my graduation design. This subject mainly introduces the principle and method to realize the multithread download process and break point transmission under HTTP work environment .It can help users to have a deeper understanding about downloader and how to use download tools better. Keywords: HTTP。 5 提交設計(論文)形式(設計說明與圖紙或論文等)及要求: ( 1)論文思路清晰,條理清楚,中心突出,內容充實, 論據充分,結構緊湊,層次分明,圖表清晰,格式規(guī)范,結論正確;按《湖南科技大學本科生畢業(yè)設計(論文)要求與規(guī)范》編排、打印文稿; ( 2)上交論文(紙質)打印文稿和系統(tǒng)源碼(電子版); 6 發(fā)題時間: 年 月 日 指導教師: (簽名) 學 生: (簽名) X X 科 技 大 學 畢業(yè)設計(論文)指導人評語 [主要對學生畢業(yè)設計(論文)的工作態(tài)度,研究內容與方法,工作量,文獻應用,創(chuàng)新性,實用性,科學性,文本