我想使用一个BufferedReader对象从两个或多个文件中读取文本。
这就是我在代码中所做的。
Charset charset = Charset.forName("UTF-8");
Path p1 = Paths.get("sum1.csv");
List<String> list = new ArrayList<String>();
BufferedReader reader = Files.newBufferedReader(p1, charset);
try {
String line;
while((line = reader.readLine()) != null && !line.isEmpty()){
list.add(line);
}
} catch (IOException e) {
System.err.format("IOException: %s%n", e);
reader.close();
}
Path p2 = Paths.get("sum2.csv");
reader = Files.newBufferedReader(p2, charset);
try {
String line;
while((line = reader.readLine()) != null && !line.isEmpty()){
list.add(line);
}
} catch (IOException e) {
System.err.format("IOException: %s%n", e);
reader.close();
}
代码已正确编译并运行。
处理这个问题的标准方法是什么?是否可以使用单个BufferedReader读取两个或更多文件?
2条答案
按热度按时间a64a0gku1#
顺便问一下,你是说
你的内部循环您的代码在第一个空行处停止,我建议的替代方案跳过空行。但我只能猜测你的真实的意图。
lyr7nygr2#
在上面的代码中,您确实创建了一个新的BufferedReader来读取第二个文件。您所做的一切都很好,尽管将重复的代码放入一个以文件名和字符串列表作为参数的方法中是有意义的。
你有一个小故障-如果在你的任何一个文件的中间有一个空行,你的程序在到达它的时候停止阅读。我不确定这是不是你想要的。