[英]Use try-with-resource to read a text file line by line in java
例如,這是一種逐行讀取文本文件的方法:
ArrayList<String> fidiidList = new ArrayList<String>();
String sampleLine;
String fileStem = "/tmp/x.txt";
File sampleFile = new File(fileStem);
BufferedReader sampleBuffer = new BufferedReader(new FileReader(sampleFile));
while ((sampleLine = sampleBuffer.readLine()) != null) {
fidiidList.add(sampleLine);
}
sampleBuffer.close();
您必須手動關閉緩沖區。 我想知道這樣做是否可以:
try(BufferedReader sampleBuffer = new BufferedReader(new FileReader(sampleFile))) {
while ((sampleLine = sampleBuffer.readLine()) != null) {
fidiidList.add(sampleLine);
}
} catch (Exception e) {
e.printStackTrace();
}
根據我的教科書,它承諾自動關閉對象。
順便說一句,當我在IDE中鍵入此代碼時,它提醒我將語言級別從1.8提升到1.7,這是否意味着Java 8不再支持此功能?
您正在使用Java7。請使用Java 7的文件API:
final List<String> allLines
= Files.readAllLines(pathToYourFile, StandardCharsets.UTF_8);
從Java 8開始,您甚至可以使用Files.lines()
獲得文件中所有行的Stream
。
至於您的IDE告訴您將語言級別提高到1.7,可能是因為您沒有使用Java 8功能。
其他注意事項:我非常懷疑您能否從PDF中讀取文本行,因為您的代碼似乎正在嘗試這樣做...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.