当前位置: 代码迷 >> 综合 >> java源代码详细注释 网络文件下载之分段下载(可扩展 断点续传)
  详细解决方案

java源代码详细注释 网络文件下载之分段下载(可扩展 断点续传)

热度:37   发布时间:2024-01-08 22:10:23.0
 
 
 
 

直接贴出代码





/************************************************************************ Module:  DownloadConnection.java* Author:  Administrator* Purpose: Defines the Class DownloadConnection***********************************************************************/package com.tiny.httpdemo;import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.net.HttpURLConnection;
import java.net.URL;import lan.Log;/*** 这个下载连接类主要采用的方式是 将文件大小进行分块然后 并且有序下载  * 主要的目的是为了让一次下载的数量不要过于的大  以避免io阻塞* 若要实现断点续传本程序的改进应该是很方便的  * 记住lastSize  既可以立马进行分解* @author sada**/
public class DownloadConnection  {//	private static final String mtempurl = "http://219.138.125.22/myweb/mp3/CMP3/JH19.MP3";private static final String mtempurl = "http://file16.top100.cn/201105110911/AA5CC27CBE34DEB50A194581D1300881/Special_323149/%E8%8D%B7%E5%A1%98%E6%9C%88%E8%89%B2.mp3";public static void main(String[] args) {DownloadConnection dConnection = new DownloadConnection(mtempurl, 0);dConnection.download(mtempurl);}/** TAG */private static final String TAG = "Sada.DownloadConnection";/** 用于操作下载暂停,写本地文件时候跳出写循环的标志 */private boolean stop;/** 下载的文件的总长度 */private int totalSize;/** 如果是继续下载,lastSize表示上次已经下载的长度 */private int lastSize;/** 當前下載數據塊已下載數據大小,该变量会在写循环中增加*/private int currSize;/** 当前需要下载的文件大小,用于继续下载时,写循环的结束标志 */private int contentLength;/** 最大塊大小1MB */private static final int MAX_SIZE_ONE_MEGA = 1024 * 1024;private int lastloadsize = 0;    //已传的偏移private int currloadsize = 0;    //还要传得偏移private int 
  相关解决方案