2011-11-28 137 views
1

在Android中 我有一個文本文件,它可以是LARGER或SMALLER,然後是33行。 如果大於33行則讀取最後33行。 如果LESS或等於33行,則讀取所有行。 最快的方式做到這一點感謝Android從結尾讀取文本文件

好了,這是我得到

MAXLINECOUNT=33; 
File f = new File("file.......");     
if (f.exists()) 
{ 
     String readString = new String(); 
    int i,l; 
    i=0; 
    l=0; 
    LineNumberReader reader = new LineNumberReader(new FileReader(new File("/mnt/sdcard/data.txt"))); 
    while ((readString = reader.readLine()) != null) {} 
    l= reader.getLineNumber(); 
    if (l>=MAXLINECOUNT) l=l-(MAXLINECOUNT-3);// i realy need only 30 
    FileInputStream fileIS = new FileInputStream(f); 
    BufferedReader buf = new BufferedReader(new InputStreamReader(fileIS)); 
    while((readString = buf.readLine())!= null){ 
    if (i>l) 
     { 

       process hear ............... 
      } 
    i++; 
+0

希望這個問題的答案會幫助你http://stackoverflow.com/questions/2312756/in-java-how-to-read-from-a-file-a-specific-line-given-the-line-號碼 – vnshetty

+0

Android沒有找不到FileUtils。是否可以將文本文件轉換爲字符串並進行分析? –

+0

什麼都不能阻止你在你的android項目中使用commons-fileutils(除了,也許它的大小) –

回答

0

我想讀取文件將仍然使用的java.io.Reader過流最快的方式,在時間閱讀和線將它們放置在所需大小的預分配的數組(在你的案件33) 大學先修課程指數:

(idx++ % 33) 

這樣陣列將持有最多33分最後幾行。