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

 


直接贴出代码





/***********************************************************************
 * 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 con
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值