java中有没有 读取大文本文件(500MB以上),指定行数的某一行数据的类库? 有的话请给出教程,谢谢~

如题,能够解决问题的话追加10分。... 如题,能够解决问题的话追加10分。 展开
 我来答
百度网友9308069
2012-08-22 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1928万
展开全部
解决这种问题,
简单说,设那个大文件为big.txt
写一个程序生成一个big.idx数据文件,记录big.txt每一行的结束位置+1,每个位置用long类型存储。
比如得到数据内容(非文本):
[10][22][34][84] ....[2345312].....[50000000]
扫描一遍,生成这500MB的长度文件,比如有10万行,这个big.idx文件就有800KB左右。
就根据big.idx可以查找指定行数了,比如查第1234行
已知一个long占8个字节,打开
第1234行的起始位置的存储位置p=(1234-2)*8=9856
第1234行的长度len的位置lp=(1234-1)*8=9864
寻道big.idx的p处,在p处读取一个long为pos
寻道big.idx的lp处,在p处读取一个long为npos
pos中就记录big.txt中第1234行的起始位置
该行长度len=npos-pos;
打开big.txt,查找pos位置,读len个字节,转换成字符串,
就读出了指定的1234行
把这个不大的big.idx的内容整理到内存中间,读取速度更快。

引经据典说,以上属于数据库基础的ISAM方法。
bill_cool2008
2012-08-22 · TA获得超过495个赞
知道小有建树答主
回答量:871
采纳率:0%
帮助的人:198万
展开全部
有啊,我写过,要的话找我
追问
我只能用百度hi,已经加你了,3Q
追答
我刚升级百度空间了,已经没有HI功能了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式