[英]use bufferedreader on a txt file twice?
我必須計算文件上的行數,但稍后在代碼中我也必須打印該文件中的內容,但是我不能使用讀取器兩次,它只能說為null。 如何在不創建一堆bufferedreader對象的情況下解決此問題? 謝謝
嘗試關閉緩沖區,然后再次重新打開它。
BufferedReader bufferedReader = new BufferedReader(new FileReader("src/main/java/com/william/sandbox/stackoverflow/samples20160306/Demo.java"));
String line = bufferedReader.readLine();
int lineCount = 0;
while(line != null){
lineCount += 1;
line = bufferedReader.readLine();
}
System.out.println("Line count is: " + lineCount);
bufferedReader.close();
bufferedReader = new BufferedReader(new FileReader("src/main/java/com/william/sandbox/stackoverflow/samples20160306/Demo.java"));
line = bufferedReader.readLine();
while(line != null){
System.out.println(line);
line = bufferedReader.readLine();
}
}
您可以使用BufferedReader
的mark()
和reset()
方法跳回到特定位置。
try (BufferedReader r = new BufferedReader(new FileReader("somefile.txt"))) {
// marks this position for the next 10 characters read
// after that the mark is lost
r.mark(10);
// do some reading
// jump back to the mark
r.reset();
}
請注意, BufferedReader
支持標記,但並非所有Reader
都支持。 您可以使用markSupported()
進行檢查。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.