使用BufferedReader读取每10行

时间:2013-03-15 23:33:50

标签: java bufferedreader

是否有一种方法可以使用.txtBufferedReader文件中读取每10行?目前我的BufferedReader正在读取每一行,拆分不同的值并将它们存储在数组列表中;然后在我的程序中的其他地方使用。

4 个答案:

答案 0 :(得分:3)

使用LineNumberReader用于此目的:

LineNumberReader reader = new LineNumberReader(fileReader);
ArrayList<String> goodLines = new ArrayList<String>();
String line = null;
while ((line = reader.readLine()) != null) {
   if ((reader.getLineNumber()+1) % 10 == 0) {
       goodLines.add(line);
   }
}

答案 1 :(得分:1)

使用循环读取您不想要的所有行,然后读取您想要的行。

BufferedReader br = new BufferedReader(new FileReader(file));
int index = 10;
while (lineNumber < index - 1)
    {
        lineNumber++;
        br.readLine();
    }
String lineYouWant = br.readLine();
if (lineYouWant.isEmpty()) br.close();
// Do stuff with lineYouWant
br.close();

答案 2 :(得分:0)

缓冲读取器的目的是使读取逻辑单元变得容易。读取多行会使代码复杂化并且不会提供很好的性能提升,因为缓冲读取器已经将大块数据读入其缓冲区。

编辑:由于您的记录是固定大小的,您可以使用较低级别的阅读器,只需读取所需的字节数。

答案 3 :(得分:0)

由于您的所有行都是相同的大小,因此您可以查看BufferedReader中的skip()方法。您基本上会读取一行,然后跳过10 * lineSize并阅读下一行等等......