java - inputStream关闭了,还有必要关闭InputStreamReader和BufferedReader吗?
PHP中文网
PHP中文网 2017-04-18 09:30:18
0
3
1199
PHP中文网
PHP中文网

认证0级讲师

全員に返信(3)
Ty80

一番外側の 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--

ストリームを閉じ、それに関連付けられているシステム リソースを解放します

これはチェーンです。最も外側のチェーンを閉じ、最も外側のチェーンが内側のチェーンを閉じ、内側のチェーンが内側のチェーンを閉じます。


もちろん、シャットダウンが失敗する可能性があると主張する場合は、最終的には実行する必要があります。

いいねを押す +0
阿神

質問が次のような場合: BufferedReader が閉じられていますが、InputStreamReader と InputStream を閉じる必要がありますか? なら、この問題は正常です...

Java の io パッケージのストリームとリーダーは両方ともデコレータ パターンを使用します。最も外側のデコレータの close メソッドを呼び出すだけで、デコレータが装飾するストリームまたはリーダーも閉じられます。

これが機能しない場合は、BufferedReader のソース コードを開いて、close メソッドを確認してください。

で装飾されているリーダーが閉じられていることがわかります。

どんなに難しくても、あなたの疑問を解決できるかもしれない次の記事をお勧めします。「Java IO: ストリームとそのデコレータ パターンの適用」

いいねを押す +0
刘奇

すべてを 1 つずつ順番に、できれば最後に閉じる必要があります

リーリー

最初に作成された最後のレベル、最後に作成された最初のレベル

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート