Закрывается ли поток, когда вы используете что-то вроде:
gson.toJson(obj, new FileWriter("C:\\fileName.json"));
Нет. Вы должны закрыть его с помощью try-with-resources или блока try-catch-finally.
Начиная с JDK 7, предпочтительный способ закрыть AutoClosable - это использовать try-with-resources (например, во втором фрагменте):
try (FileWriter writer = new FileWriter("C:\\fileName.json")) {
gson.toJson(obj, writer);
} catch (IOException e) {
e.printStackTrace();
}
Или вы можете позвонить close()
, используя блок try-catch-finally:
FileWriter writer = null;
try {
writer = new FileWriter("C:\\fileName.json");
gson.toJson(obj, writer);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}