在Android中 我有一个文本文件,可以是LARGER或SMALLER然后33行。 如果大于33行则读取最后33行。 如果LESS或等于33行,则读取所有行。 这是最快的方式,谢谢
好的,这就是我得到的
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 :(得分:0)
我认为读取文件的最快方法仍然是使用java.io.Reader over stream,当时读取行并将它们放入所需大小的预分配数组中(在您的情况下为33) 预先安置指数:
(idx++ % 33)
这种方式阵列最多可容纳33行。