簡體   English   中英

使用BufferedReader每10行讀取一次

[英]Reading every 10 lines using a BufferedReader

是否有一種方法可以使用BufferedReader.txt文件中每10行讀取一次? 目前,我的BufferedReader正在讀取每一行,拆分不同的值並將它們存儲在數組列表中。 然后在我的程序的其他地方使用。

使用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);
   }
}

使用循環讀取不需要的所有行,然后讀取所需的行。

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();

緩沖讀取器的目的是使讀取邏輯單元(如行)變得容易。 讀取多行將使您的代碼復雜化,並且無法提供出色的性能提升,因為緩沖的讀取器已經將大數據塊讀取到其緩沖區中。

編輯:由於您的記錄是固定大小的,因此可以使用較低級別的讀取器,僅讀取所需的字節數。

由於所有行的大小都相同,因此您可以查看BufferedReader中的skip()方法。 您基本上會讀一行,然后跳過10 * lineSize並讀下一行,依此類推...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM