PHP中文网2017-04-18 09:32:18
一番外側の close() を直接呼び出すだけです
更新:
http://docs.oracle.com/javase/8/docs/api/java/io/BufferedReader.html#close--
ストリームを閉じ、それに関連付けられているシステム リソースを解放します
http://docs.oracle.com/javase/8/docs/api/java/io/InputStreamReader.html#close--
ストリームを閉じ、それに関連付けられているシステム リソースを解放します
これはチェーンです。最も外側のチェーンを閉じ、最も外側のチェーンが内側のチェーンを閉じ、内側のチェーンが内側のチェーンを閉じます。
もちろん、シャットダウンが失敗する可能性があると主張する場合は、最終的には実行する必要があります。
阿神2017-04-18 09:32:18
質問が次のような場合: BufferedReader が閉じられていますが、InputStreamReader と InputStream を閉じる必要がありますか? なら、この問題は正常です...
Java の io パッケージのストリームとリーダーは両方ともデコレータ パターンを使用します。最も外側のデコレータの close メソッドを呼び出すだけで、デコレータが装飾するストリームまたはリーダーも閉じられます。
これが機能しない場合は、BufferedReader
のソース コードを開いて、close メソッドを確認してください。
どんなに難しくても、あなたの疑問を解決できるかもしれない次の記事をお勧めします。「Java IO: ストリームとそのデコレータ パターンの適用」