有限内存读取文件内容

2010-04-22  张东升 

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

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

  

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

 

  1. File file = new File("filename");   
  2. BufferedInputStream fis = new BufferedInputStream(new FileInputStream(file));    
  3. BufferedReader reader = new BufferedReader(new InputStreamReader(fis),10*1024*1024);// 用10M的缓冲读取文本文件  
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(), 就行了。
google_protectAndRun("render_ads.js::google_render_ad", google_handleError, google_render_ad);
335°/3356 人阅读/0 条评论 发表评论

登录 后发表评论