Хотя я и предложил в своем комментарии использовать BufferedWriter
, я думаю, что проще использовать Files.write
.
. При этом ваш outputPGToFile()
будет выглядеть так:
private static void outputPGToFile() {
try {
Files.write(Paths.get("PostgradStudent.csv"),
Arrays.stream(PGstudentArray).map(Object::toString).collect(Collectors.toList()),
StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);
} catch (IOException e) {
e.printStackTrace();
}
}
(Вам необходимо добавить соответствующий импорт)
Если вам действительно нужно использовать старые вещи низкого уровня java.io
, вы можете использовать это:
private static void outputPGToFile() {
try (FileWriter fw = new FileWriter(new File("PostgradStudent.csv"));
BufferedWriter bw = new BufferedWriter(fw)) {
for (PostGraduateStudent student : PGstudentArray) {
bw.write(student.toString());
bw.newLine();
}
} catch (IOException e) {
e.printStackTrace();
}
}
Try-with-resources обеспечит закрытие как FileWriter
, так и BufferedWriter
даже при возникновении исключения.