标签:
断点续传和断点下载都是用的RandomAccessFile, 它具有移动指定的文件大小的位置的功能seek 。
断点续传是由服务器给客户端一个已经上传的位置标记position,然后客户端再将文件指针移动到相应的position,通过输入流将文件剩余部分读出来传输给服务器
断点下载 是由客户端告诉服务器已经下载的大小,然后服务器会将指针移动到相应的position,继续读出,把文件返回给客户端。 当然为了下载的更快一下,也可以多线程下载,那么基本实现就是给每个线程分配固定的字节的文件,分别去读
首先是文件上传,这个要用到服务器
关键代码:
FileServer.java
由于在上面的流程图中已经进行了详细的分析,我在这儿就不讲了,只是在存储数据的时候服务器没有用数据库去存储,这儿只是为了方便,所以要想测试断点上传,服务器是不能停的,否则数据就没有了,在以后改进的时候应该用数据库去存储数据。
文件上传客户端:
关键代码:
UploadActivity.java
UploadThread.java
下面是多线程下载
SmartDownloadActivity.java
这个单个的下载线程
SmartDownloadThread.java
总得下载线程
SmartFileDownloader.java
代码实现 参考 http://hao3100590.iteye.com/blog/1295903
标签:
原文地址:http://www.cnblogs.com/wangzehuaw/p/5610851.html