我不需要说什么按条件的筛选,然后按行读什么的。那样太大了,我需要的是高效率的读取到哪一行……
这个方法我知道,我就是问有木有直接从100行读起的,你要一循环,那不还是浪费了很多效率吗?
追答就像楼下说的,你要这样的话,不如换数据库读取
imkow的回答是相当错误误导的。LineNumberReader.setLineNumber并不是这个用途。是用以设定当前所读行的行号初始位移,而非跳转到某行。
一般都需要使用各类Reader做readLine后,然后一直读到某行的这样的做法。如果文件大而有需要反复读取,而又考虑不想将所有内容加载到内存的话。可以采用RandomAccessFile做一行的readline,再在List中记录一行RandomAccessFile.getFilePointer()的文件指针位置,建立[指针大小*行数]的索引,内存占用少于所有内容加载到内存。然后具体取某行内容时,在List中get此行号,再进行seek到这个pointer再readLine的办法。
下面这个GitHub项目可参考。