逐行反向读取文件,没有太多开销

时间:2013-09-12 12:03:04

标签: java performance file bufferedreader overhead

我需要以相反的顺序读取i文件,因为现在它必须运行所有文件以找到我知道它将在最后一行中的内容。我的目标是使我的应用程序更快哪个最快方式以相反的顺序逐行读取文件?

例如:我的文件是

  line1
  line2
  line3
  line4
  line5

我想阅读

  line5
  line4
  line3
  line2
  line1

我知道有很多方法可以做到这一点......但哪一个会给我更少的开销

1 个答案:

答案 0 :(得分:-1)

试试这个, 我认为这是以相反顺序读取文件的最快方法。

import java.io.*;  
import java.util.*;  
class FileReaderReverse  
{  
    public static void main(String[] args) throws IOException,FileNotFoundException  
    {  
        FileReader fr=new FileReader("abc.txt");  
        BufferedReader br=new BufferedReader(fr);  
        String s;  

        List<String> tmp = new ArrayList<String>();  
        do
        {  
            s = br.readLine();  
            tmp.add(s);  
        }while(s!=null);  


        for(int i=tmp.size()-1;i>=0;i--) {  
            System.out.println(tmp.get(i));  
        }  
    }  
}