1 回答

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊
問題是,你br.write()拋出了異常。您必須在 lambda 表達(dá)式 ( .forEach()) 中捕捉到這一點(diǎn):
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);
}
您還可以使用以下方法簡(jiǎn)化您的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());
}
}
添加回答
舉報(bào)