以下のように BufferedReader を検討してください。
writer = new BufferedWriter(new FileWriter(new File("File.txt"), true));
この場合、アプリケーションの最後に、で閉じてwriter
いますwriter.close()
これで十分でしょうか?で作成した FileWriter をnew FileWriter(new File("File.txt"), true)
閉じる必要はありませんか?
以下のように BufferedReader を検討してください。
writer = new BufferedWriter(new FileWriter(new File("File.txt"), true));
この場合、アプリケーションの最後に、で閉じてwriter
いますwriter.close()
これで十分でしょうか?で作成した FileWriter をnew FileWriter(new File("File.txt"), true)
閉じる必要はありませんか?
BufferedWriter がラップするライターを閉じる処理を行うため、これを閉じる必要はありません。
あなたを納得させるために、これは BufferedWriter の close メソッドのソース コードです。
public void close() throws IOException {
synchronized (lock) {
if (out == null) {
return;
}
try {
flushBuffer();
} finally {
out.close();
out = null;
cb = null;
}
}
}
はいwriter.close()
、基礎となるライター/ストリームも閉じます。
すべてが別のストリームであるため、開いている各ストリームを個別に閉じることをお勧めします。ネストされたストリームで何らかのエラーが発生した場合、ストリームは近づきません。したがって、ネストされた各ストリームを排他的に閉じることをお勧めします。
詳細については、次のリンクを参照してください。