1 回答
TA贡献1911条经验 获得超7个赞
问题是,你br.write()抛出了异常。您必须在 lambda 表达式 ( .forEach()) 中捕捉到这一点:
items.stream()
.map(row -> String.join(",", row))
.forEach( row -> {
try {
bw.write(row + "\n");
} catch (IOException e) {
e.printStackTrace();
}
});
但是您可以使用以下方法缩短它Files.write():
public static void write(List<String[]> items, Path path) throws IOException {
List<String> lines = items.stream()
.map(row -> String.join(",", row))
.collect(Collectors.toList());
Files.write(path, lines);
}
您还可以使用以下方法简化您的read方法Files.lines():
public static List<String[]> read(Path path) throws IOException {
try (Stream<String> lines = Files.lines(path)) {
return lines
.map(e -> e.split(","))
.collect(Collectors.toList());
}
}
添加回答
举报