Проблема в том, что ваш br.write()
выдает исключение.Вы должны уловить это в своем лямбда-выражении (.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());
}
}