一般的网上下载并没有分割成碎片
而是用了对象 Randomaccessfile 里面的方法
例如用了 seek()方法 skipBytes(int n)
seek
public void seek(long pos)
throws IOException设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作。偏移量的设置可能会超出文件末尾。偏移量的设置超出文件末尾不会改变文件的长度。只有在偏移量的设置超出文件末尾的情况下对文件进行写入才会更改其长度。
参数:
pos - 从文件开头以字节为单位测量的偏移量位置,在该位置设置文件指针。
读取的时候可以多线程,用skipBytes() 跳着字节数读取一个文件
写入的时候 用seek()方法多线程写入一个文件。
这样下载文件就会比较快些。
具体用法可参考毕老师的 Java基础视频教程第21天-03-IO流(RandomAccessFile) |