黑马程序员技术交流社区

标题: 文件下载 [打印本页]

作者: 黑马_位志国    时间: 2013-3-6 14:18
标题: 文件下载
本帖最后由 黑马_位志国 于 2013-3-6 14:19 编辑

既然可以把文件分割,也可以把文件合并,那么关于从网上下载的文件,是不是先把该文件分割成好几份碎片,然后再把这些碎片合并成一个文件?

为什么有的只有一个临时文件,是不是隐藏了? 还是没有显示出来???


作者: lzw123451    时间: 2013-3-6 14:45
一般的网上下载并没有分割成碎片
而是用了对象 Randomaccessfile 里面的方法
例如用了 seek()方法 skipBytes(int n)


seek
public void seek(long pos)
          throws IOException设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作。偏移量的设置可能会超出文件末尾。偏移量的设置超出文件末尾不会改变文件的长度。只有在偏移量的设置超出文件末尾的情况下对文件进行写入才会更改其长度。

参数:
pos - 从文件开头以字节为单位测量的偏移量位置,在该位置设置文件指针。

读取的时候可以多线程,用skipBytes() 跳着字节数读取一个文件
写入的时候 用seek()方法多线程写入一个文件。
这样下载文件就会比较快些。

具体用法可参考毕老师的 Java基础视频教程第21天-03-IO流(RandomAccessFile)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2