首页 新闻 会员 周边 捐助

Java 中 RandomAcessFile 类读取 文件效率问题!求大神们

0
悬赏园豆:100 [已解决问题] 解决于 2013-12-12 17:50

大神们们好,我现在有一个文件,里面的数据之前都是使用writeDouble写入的(都是double型),现在我们次想要读10000个,我对java不熟,所以之前使用readDouble每次读一个,效率很低,所以不知道有没有高效的办法读取,很急啊,谢谢大神们~

xiaodaodao的主页 xiaodaodao | 初学一级 | 园豆:114
提问于:2013-12-12 09:15
< >
分享
最佳答案
1

read(byte[] buffer,int offset,int count);

收获园豆:80
Launcher | 高人七级 |园豆:45050 | 2013-12-12 09:50

   你好,读取出来的buffer怎么转化成每个单独的double?谢谢你

xiaodaodao | 园豆:114 (初学一级) | 2013-12-12 10:06

@xiaodaodao: 

double d1 = getDouble(buffer,offset + 0 * 8);

double d2 = getDouble(buffer,offset + 1 * 8);

double d3 = getDouble(buffer,offset + 2 * 8);

.....

double dn = getDouble(buffer,offset + (n-1) * 8);

Launcher | 园豆:45050 (高人七级) | 2013-12-12 10:15
其他回答(2)
0

那你就通过一个中间流呗。先把文件流读到内存里面,然后再一个一个读double.

收获园豆:10
angelshelter | 园豆:9914 (大侠五级) | 2013-12-12 09:23

  不太会啊,能具体说说嘛?谢谢啊~~~

支持(0) 反对(0) xiaodaodao | 园豆:114 (初学一级) | 2013-12-12 09:38
0

如果单条数据不大,可以考虑一次性读出用数组List集合存储。

若数据较大,则考虑先一次读取到内存中来,再到内存中读 ,java 应该也有MermoryStream 对象 

收获园豆:10
Zery | 园豆:6151 (大侠五级) | 2013-12-12 09:45

支持(0) 反对(0) bitbug | 园豆:470 (菜鸟二级) | 2013-12-12 10:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册