Redian新闻
>
再请问版主一个随机读取文件的问题
avatar
再请问版主一个随机读取文件的问题# Java - 爪哇娇娃
j*s
1
随机读取一个大文件,该文件由若干条目组成,于是我预处理文件,把每个条目的起始
位置都记录下来放在hashtable里,当以后访问任一条目的时候用BufferedReader的
skip()函数跳跃到该条目的起始位置读取内容。
这样做的话,对大文件(1G以上的,比如生物软件blast的生成结果),skip()需要一
定的时间,有没有更好的方案?
也许建一个临时目录,把所有的条目存成一个单独的文件,然后按文件名索引会不会好
些?
avatar
o*g
2
用java.io.RandomAccessFile试一下
BufferedReader肯定是都读进来了,再skip的。

【在 j*******s 的大作中提到】
: 随机读取一个大文件,该文件由若干条目组成,于是我预处理文件,把每个条目的起始
: 位置都记录下来放在hashtable里,当以后访问任一条目的时候用BufferedReader的
: skip()函数跳跃到该条目的起始位置读取内容。
: 这样做的话,对大文件(1G以上的,比如生物软件blast的生成结果),skip()需要一
: 定的时间,有没有更好的方案?
: 也许建一个临时目录,把所有的条目存成一个单独的文件,然后按文件名索引会不会好
: 些?

avatar
j*s
3
好,我用计时器比较一下再来汇报。

【在 o***g 的大作中提到】
: 用java.io.RandomAccessFile试一下
: BufferedReader肯定是都读进来了,再skip的。

avatar
b*u
4
如果你的每个条目固定长,用RandomAccessFile就应该很好用
如果不定长,你已经纪录了每个条目的起始位置。这个起始位置是文件指针的话,不是
也可以直接用RandomAccessFile,直接到要读的条目吗?

【在 j*******s 的大作中提到】
: 随机读取一个大文件,该文件由若干条目组成,于是我预处理文件,把每个条目的起始
: 位置都记录下来放在hashtable里,当以后访问任一条目的时候用BufferedReader的
: skip()函数跳跃到该条目的起始位置读取内容。
: 这样做的话,对大文件(1G以上的,比如生物软件blast的生成结果),skip()需要一
: 定的时间,有没有更好的方案?
: 也许建一个临时目录,把所有的条目存成一个单独的文件,然后按文件名索引会不会好
: 些?

avatar
w*r
5
RandomAccessFile should work

【在 j*******s 的大作中提到】
: 随机读取一个大文件,该文件由若干条目组成,于是我预处理文件,把每个条目的起始
: 位置都记录下来放在hashtable里,当以后访问任一条目的时候用BufferedReader的
: skip()函数跳跃到该条目的起始位置读取内容。
: 这样做的话,对大文件(1G以上的,比如生物软件blast的生成结果),skip()需要一
: 定的时间,有没有更好的方案?
: 也许建一个临时目录,把所有的条目存成一个单独的文件,然后按文件名索引会不会好
: 些?

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。