⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filesplitterfetch.java

📁 Java网络编程实例第2章实例.rar
💻 JAVA
字号:
package download;import java.io.*;import java.net.*;/** * Title:        Java实现网络文件传输 * Description:  在客户端请求Web服务器传输指定文件,并将文件保存。 * Copyright:    Copyright (c) 2002 * Company: * @author 钟华 * @version 1.0 */public class FileSplitterFetch extends Thread {  String sURL; // 定义文件传输时使用的变量  long nStartPos; // 分段文件传输开始位置  long nEndPos; // 分段文件传输结束位置  int nThreadID; // 子线程ID  boolean bDownOver = false; // 完成文件传输  boolean bStop = false; // 停止文件传输  FileAccess fileAccess = null;  public FileSplitterFetch(String sURL,String sName,long nStart,long nEnd,int id) throws IOException{    this.sURL = sURL;    this.nStartPos = nStart;    this.nEndPos = nEnd;    nThreadID = id;    fileAccess = new FileAccess(sName,nStartPos);  }  public void run(){    while(nStartPos < nEndPos && !bStop){      try{        URL url = new URL(sURL);        HttpURLConnection httpConnection = (HttpURLConnection)url.openConnection ();        httpConnection.setRequestProperty("User-Agent","NetFox");        String sProperty = "bytes="+nStartPos+"-";        httpConnection.setRequestProperty("RANGE",sProperty);        Utility.log(sProperty);        InputStream input = httpConnection.getInputStream();        byte[] b = new byte[1024];        int nRead;        while((nRead=input.read(b,0,1024)) > 0 && nStartPos < nEndPos && !bStop){          nStartPos += fileAccess.write(b,0,nRead);        }        Utility.log("Thread " + nThreadID + " is over!");        bDownOver = true;      }      catch(Exception e){        e.printStackTrace ();      }    }  }  public void logResponseHead(HttpURLConnection con){    for(int i=1;;i++){      String header=con.getHeaderFieldKey(i);      if(header!=null)        Utility.log(header+" : "+con.getHeaderField(header));      else        break;    }  }  public void splitterStop(){    bStop = true;  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -