A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王军行 中级黑马   /  2013-3-29 08:08  /  1975 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王军行 于 2013-3-29 09:27 编辑

毕老师视频上说这个RandomAccessFile可以模拟多线程下载,我搞了快半个小时弄出个多线程复制文件
一个类实现Runnable
构造传入一个源文件File和一个目的文件加上你要的线程数int  c
初始化建立了两个RandomAccessFile对象
我把读写操作和读写用的byte数组创建封装到了Run方法中
然后封装了个copy方法来实现建立c个线程,每建立一个线程指针后移  Math. cile( 源文件长度除以c)
然后实验了下,发现可以完成还挺快的一个多G的文件复制也就八秒多
我想完善他的时候发现不知道这个流应该在什么时候关闭了?
只能等虚拟机退出了吗?

评分

参与人数 1技术分 +1 收起 理由
洪建超 + 1

查看全部评分

3 个回复

倒序浏览
既然是多线程   每个线程都有自己的RandomAccessFile     每个线程copy完了就关自己的流就行了呗
回复 使用道具 举报
最好把你的代码贴一下,贴一下更直观
贴出来给你找问题
回复 使用道具 举报
本帖最后由 王军行 于 2013-3-29 09:32 编辑
张世钦 发表于 2013-3-29 09:00
既然是多线程   每个线程都有自己的RandomAccessFile     每个线程copy完了就关自己的流就行了呗 ...

嗯,明白了,顺便问一下,如果我只用一个RandomAccessFile 多个线程调用这个对象的读写方法,这样算开启了多线程读写吗?
我试了下。数据没有出错。它开启了多个读写流吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马