使用try with resource在java中逐行读取文本文件
例如,这里有一种逐行读取文本文件的方法:使用try with resource在java中逐行读取文本文件,java,io,Java,Io,例如,这里有一种逐行读取文本文件的方法: ArrayList<String> fidiidList = new ArrayList<String>(); String sampleLine; String fileStem = "/tmp/x.txt"; File sampleFile = new File(fileStem); BufferedReader sampleBuffer = new BufferedReader(new FileReader(sampleF
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();
根据我的教科书,它承诺自动关闭物体
顺便说一句,当我在IDE中输入这个时,它提醒我将语言级别从1.8提高到1.7,这是否意味着Java 8不再支持这个功能?您正在使用Java 7。使用Java 7的文件API:
final List<String> allLines
= Files.readAllLines(pathToYourFile, StandardCharsets.UTF_8);
最终列出所有行
=Files.readAllLines(路径到您的文件,StandardCharsets.UTF_8);
由于Java 8,您甚至可以使用获取文件中所有行的流
至于IDE告诉您将语言级别提高到1.7,可能是因为您没有使用Java8特性
另一方面注意:我非常怀疑您是否能够从PDF中读取文本行,因为您的代码似乎试图这样做…不,Java 8还支持try-with-resource。您能否在回答中详细说明一下?哦,这不是我的意图,只是一个粗心的示例。感谢s指出,现在已经更正了。使用Stream是否消除了关闭文件的必要性?根据javadoc,您可以不使用它,是的;但是,由于Stream
实现了AutoCloseable
,您可以使用资源尝试创建它,以实现更好的控制。
final List<String> allLines
= Files.readAllLines(pathToYourFile, StandardCharsets.UTF_8);