Java實現(xiàn)網(wǎng)絡(luò)資源的單線程下載_第1頁
Java實現(xiàn)網(wǎng)絡(luò)資源的單線程下載_第2頁
Java實現(xiàn)網(wǎng)絡(luò)資源的單線程下載_第3頁
Java實現(xiàn)網(wǎng)絡(luò)資源的單線程下載_第4頁
Java實現(xiàn)網(wǎng)絡(luò)資源的單線程下載_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第Java實現(xiàn)網(wǎng)絡(luò)資源的單線程下載目錄一、題目描述二、解題思路三、代碼詳解

一、題目描述

題目實現(xiàn):在一個線程中完成網(wǎng)絡(luò)資源的下載。

二、解題思路

創(chuàng)建一個類:SingleThreadDownloadFrame,繼承JFrame窗體類。

定義一個download()方法:用于從指定網(wǎng)址下載文件

使用URLConnection類的getInputStream()方法獲取網(wǎng)頁資源的輸入流對象。

獲得完整路徑,截取路徑,獲得路徑中最后一個斜杠的位置當(dāng)文件名

從輸入流中讀取內(nèi)容,寫到本地文件中。

測試下載這個鏈接

三、代碼詳解

SingleThreadDownloadFrame

packagecom.xiaoxuzhu;

importjava.awt.Color;

importjava.awt.EventQueue;

importjava.awt.Font;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.io.FileOutputStream;

importjava.io.InputStream;

import.URL;

import.URLConnection;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JOptionPane;

importjavax.swing.JTextField;

*Description:在一個線程中完成網(wǎng)絡(luò)資源的下載

*@authorxiaoxuzhu

*@version1.0

*pre

*修改記錄:

*修改后版本修改人修改日期修改內(nèi)容

*2025/5/24.1xiaoxuzhu2025/5/24Create

*/pre

*@date2025/5/24

publicclassSingleThreadDownloadFrameextendsJFrame{

privateJTextFieldtf_address;

*Launchtheapplication

*@paramargs

publicstaticvoidmain(Stringargs[]){

EventQueue.invokeLater(newRunnable(){

publicvoidrun(){

try{

SingleThreadDownloadFrameframe=newSingleThreadDownloadFrame();

frame.setVisible(true);

}catch(Exceptione){

e.printStackTrace();

*Createtheframe

publicSingleThreadDownloadFrame(){

super();

getContentPane().setLayout(null);

setTitle("網(wǎng)絡(luò)資源的單線程下載");

setBounds(100,100,500,237);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

finalJLabellabel=newJLabel();

label.setText("網(wǎng)絡(luò)資源的網(wǎng)址:");

label.setBounds(10,88,118,18);

getContentPane().add(label);

tf_address=newJTextField();

tf_address.setBounds(117,86,357,22);

getContentPane().add(tf_address);

finalJButtonbutton=newJButton();

button.addActionListener(newActionListener(){

publicvoidactionPerformed(finalActionEvente){

Stringaddress=tf_address.getText().trim();//獲得網(wǎng)址

download(address);//下載文件

button.setText("單擊開始下載");

button.setBounds(41,144,145,28);

getContentPane().add(button);

finalJButtonbutton_1=newJButton();

button_1.addActionListener(newActionListener(){

publicvoidactionPerformed(finalActionEvente){

tf_address.setText(null);//清除文本框內(nèi)容

tf_address.requestFocus();//文本框獲得焦點

button_1.setText("清空");

button_1.setBounds(204,144,106,28);

getContentPane().add(button_1);

finalJButtonbutton_2=newJButton();

button_2.addActionListener(newActionListener(){

publicvoidactionPerformed(finalActionEvente){

System.exit(0);

button_2.setText("退出");

button_2.setBounds(328,144,106,28);

getContentPane().add(button_2);

finalJLabellabel_1=newJLabel();

label_1.setForeground(newColor(0,0,255));

label_1.setFont(newFont("",Font.BOLD,24));

label_1.setText("網(wǎng)絡(luò)資源的單線程下載");

label_1.setBounds(117,21,301,48);

getContentPane().add(label_1);

publicvoiddownload(StringurlAddr){//從指定網(wǎng)址下載文件

try{

URLurl=newURL(urlAddr);//創(chuàng)建URL對象

URLConnectionurlConn=url.openConnection();//獲得連接對象

urlConn.connect();//打開到url引用資源的通信鏈接

InputStreamin=urlConn.getInputStream();//獲得輸入流對象

StringfilePath=url.getFile();//獲得完整路徑

intpos=filePath.lastIndexOf("/");//獲得路徑中最后一個斜杠的位置

StringfileName=filePath.substring(pos+1);//截取文件名

FileOutputStreamout=newFileOutputStream("D:/"+fileName);//創(chuàng)建輸出流對象

byte[]bytes=newbyte[1024];//聲明存放下載內(nèi)容的字節(jié)數(shù)組

intlen=in.read(bytes);//從輸入流中讀取內(nèi)容

while(len!=-1){

out.write(bytes,0,len);//將讀取的內(nèi)容寫到輸出流

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論