簡體   English   中英

使用try-with-resource在Java中逐行讀取文本文件

[英]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.

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