0

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

4

4 回答 4

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);
   }
}
于 2013-03-15T23:44:51.700 回答
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();
于 2013-03-15T23:37:12.070 回答
0

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

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

于 2013-03-15T23:38:13.517 回答
0

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

于 2013-03-15T23:43:17.533 回答