使用有限内存处理,读取超大文本文件

现有一个每行固定格式的.txt文本,我需要每行进行解析、处理并导入数据库。
我采用的是readline的方式处理。
当行数不多时,还可以。
当行数多时,内存占用大,效率低。
请问如何处理更合理?

针对所有文件(文本,非文本)
 

  

File file = new File("filename");
BufferedInputStream fis = new BufferedInputStream(new FileInputStream(file),10*1024*1024); // 用10M的缓冲读取
专门针对文本文件,还可以使用BufferedReader指定缓冲
 

 

File file = new File("filename");
BufferedInputStream fis = new BufferedInputStream(new FileInputStream(file)); 
BufferedReader reader = new BufferedReader(new InputStreamReader(fis),10*1024*1024);// 用10M的缓冲读取文本文件
我给的代码是占用10M的缓冲,也就是说,无论你读取多大的文件,他只占用大约10M的内存空间进行处理。他会自动从文件里面读取剩余部分的。
你的代码只需要继续 readLine(), 就行了。

你可能感兴趣的:(有限内存处理 超大文本文件)