Ниже приведены три способа закрыть
PrintWriter. Первый помещает метод close () в в конец блока try, второй - в блок finally, а третий использует возможность try-with-resources. Какой из них является правильным или лучшим?
//close() в конце блока try
try {
PrintWriter out = new PrintWriter(
new BufferedWriter(
new FileWriter("out.txt", true)));
out.println("the text");
out.close();
} catch (IOException e) {
e.printStackTrace();
}
|
//close() в блоке finally
PrintWriter out = null;
try {
out = new PrintWriter(
new BufferedWriter(
new FileWriter("out.txt", true)));
out.println("текст");
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
out.close();
}
}
|
//внутри try-with-resource
try (PrintWriter out2 = new PrintWriter(
new BufferedWriter(
new FileWriter("out.txt", true)))) {
out2.println("тест");
} catch (IOException e) {
e.printStackTrace();
}
|
Ответ :
Поскольку Writer должен быть закрыт в любом случае, close () следует поместить в пункт finally.
Комментарии
Отправить комментарий