知识大全 用Java实现HTTP断点续传功能(3)

Posted

篇首语:有了知识不运用,等于耕耘播种。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用Java实现HTTP断点续传功能(3)相关的知识,希望对你有一定的参考价值。

用Java实现HTTP断点续传功能(3)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  /*

  **FileSplitterFetch java

  */

  package NetFox;

  import java io *;

  import *;

  public class FileSplitterFetch extends Thread

  String sURL; //File URL

  long nStartPos; //File Snippet Start Position

  long nEndPos; //File Snippet End Position

  int nThreadID; //Thread s ID

  boolean bDownOver = false; //Downing is over

  boolean bStop = false; //Stop identical

  FileAccessI fileAccessI = null; //File Access interface

  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;

  fileAccessI = new FileAccessI(sName nStartPos);

  

  public void run()

  

  while(nStartPos < nEndPos && !bStop)

  

  try

  URL url = new URL(sURL);

  HttpURLConnection Connection = (HttpURLConnection)url openConnection ();

  ( User Agent NetFox );

  String sProperty = bytes= +nStartPos+ ;

  ( RANGE sProperty);

  Utility log(sProperty);

  InputStream input = ();

  //logResponseHead(Connection);

  byte[] b = new byte[ ];

  int nRead;

  while((nRead=input read(b )) > && nStartPos < nEndPos && !bStop)

  

  nStartPos += fileAccessI write(b nRead);

  //if(nThreadID == )

  // Utility log( nStartPos = + nStartPos + nEndPos = + nEndPos);

  

  Utility log( Thread + nThreadID + is over! );

  bDownOver = true;

  //nPos = fileAccessI write (b nRead);

  

  catch(Exception e)e printStackTrace ();

  

  

  //打印回应的头信息

  public void logResponseHead(HttpURLConnection con)

  

  for(int i= ;;i++)

  

  String header=con getHeaderFieldKey(i);

  if(header!=null)

  //responseHeaders put(header (header));

  Utility log(header+ : +con getHeaderField(header));

  else

  break;

  

  

  public void splitterStop()

  

  bStop = true;

  

  

  /*

  **FileAccess java

  */

  package NetFox;

  import java io *;

  public class FileAccessI implements Serializable

  RandomAccessFile oSavedFile;

  long nPos;

  public FileAccessI() throws IOException

  

  this( );

  

  public FileAccessI(String sName long nPos) throws IOException

  

  oSavedFile = new RandomAccessFile(sName rw );

  this nPos = nPos;

  oSavedFile seek(nPos);

  

  public synchronized int write(byte[] b int nStart int nLen)

  

  int n = ;

  try

  oSavedFile write(b nStart nLen);

  n = nLen;

  

  catch(IOException e)

  

  e printStackTrace ();

  

  return n;

  

  

  /*

  **SiteInfoBean java

  */

  package NetFox;

  public class SiteInfoBean

  private String sSiteURL; //Site s URL

  private String sFilePath; //Saved File s Path

  private String sFileName; //Saved File s Name

  private int nSplitter; //Count of Splited Downloading File

  public SiteInfoBean()

  

  //default value of nSplitter is

  this( );

  

  public SiteInfoBean(String sURL String sPath String sName int nSpiltter)

  

  sSiteURL= sURL;

  sFilePath = sPath;

  sFileName = sName;

  this nSplitter = nSpiltter;

  

  public String getSSiteURL()

  

  return sSiteURL;

  

  public void setSSiteURL(String value)

  

  sSiteURL = value;

  

  public String getSFilePath()

  

  return sFilePath;

  

  public void setSFilePath(String value)

  

  sFilePath = value;

  

  public String getSFileName()

  

  return sFileName;

  

  public void setSFileName(String value)

  

  sFileName = value;

  

  public int getNSplitter()

  

  return nSplitter;

  

  public void setNSplitter(int nCount)

  

  nSplitter = nCount;

  

  

  /*

  **Utility java

  */

  package NetFox;

  public class Utility

  public Utility()

  

  

  public static void sleep(int nSecond)

  

  try

  Thread sleep(nSecond);

  

  catch(Exception e)

  

  e printStackTrace ();

  

  

  public static void log(String sMsg)

  

  System err println(sMsg);

  

  public static void log(int sMsg)

  

  System err println(sMsg);

  

  

  /*

  **TestMethod java

  */

  package NetFox;

  public class TestMethod

  public TestMethod()

   ///xx/weblogic b _win exe

  try

  SiteInfoBean bean = new SiteInfoBean( L:\\\\temp weblogic b _win exe );

  //SiteInfoBean bean = new SiteInfoBean( L:\\\\temp weblogic b _win exe );

  SiteFileFetch fileFetch = new SiteFileFetch(bean);

  fileFetch start();

  

  catch(Exception e)e printStackTrace ();

  

  

  public static void main(String[] args)

  

  new TestMethod();

  

cha138/Article/program/Java/hx/201311/26866

相关参考

知识大全 用java多线程断点续传实践

  /**  *authorannegu  *date  */  annegu做了一个简单的Http多线程的下载程序来讨论一下多线程并发下载以及断点续传的问题  这个程序的功能就是可以分多个线程从目标

知识大全 用Java实现断点续传(HTTP)

用Java实现断点续传(HTTP)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  断点续传的原理

知识大全 如何使用.NET实现断点续传功能

如何使用.NET实现断点续传功能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  顾名思义断点续传

知识大全 java中http断点续传的原理(1)

  (一)断点续传的原理  其实断点续传的原理很简单就是在Http的请求上和一般的下载有所不同而已  打个比方浏览器请求服务器上的一个文时所发出的请求如下  假设服务器域名为文件名为downzip  

知识大全 使用Visual C#实现断点续传

使用VisualC#实现断点续传  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs

知识大全 http断点续传简单实现

  /*  **SiteFileFetchjava  */  packageNetFox;  importjavaio*;  import*;      publicclassSiteFileFetc

知识大全 PHP 下载远程文件类(支持断点续传)

PHP下载远程文件类(支持断点续传)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  PHP下载远

知识大全 实现HTTP断点续传下载工具(附源代码)

Java网络编程从入门到精通(24):实现HTTP断点续传下载工具(附源代码)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,

知识大全 vs2010根据字符串内容添加断点的方法介绍

  在vs中我们可以直接用表达式数值型比较直接用操作符即可  如i==i<;  但是字符型比较呢?  加入我们有一个名为string的变量定义如下:  char*string=Two;  设置断

知识大全 QQ传文件的时候突然电脑关机,那么重启后还能续传么

QQ传文件的时候突然电脑关机,那么重启后还能续传么?紧急求救!  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来