मैं सोच रहा था कि फ़ाइल संसाधन/हैंडल जारी करने का सबसे अच्छा/उचित तरीका क्या है।I/O संसाधन को ठीक से जारी करना
पारंपरिक कोड,
BufferredInputStream stream = null
try{
----
stream = new BufferredInputStream(new FileInputStream());
----
} finally{
if(stream != null){
stream.close()
}
}
फ़ाइल या BufferredInputStream.close
अकेले बंद करके जारी किया संभाल लेंगे यह अंतर्निहित stream(i.e. FileInputStream.close())
भी स्पष्ट रूप से कहा जाता है की जरूरत है।
P.S. Javadoc for [FilterOutputStream.close]
विधि निर्दिष्ट करती है कि यह स्पष्ट रूप से अंतर्निहित धारा को भी बंद कर देगा। लेकिन अन्य धाराओं में यह दस्तावेज़ में प्रतीत नहीं होता है।
[FilterOutputStream.close]: http://docs.oracle.com/javase/1.4.2/docs/api/java/io/FilterOutputStream.html#close%28%29
कृपया सलाह दें। अग्रिम में धन्यवाद।
आप केवल BufferredInputStream ऑब्जेक्ट को बंद करके और FileInputStream में हेरफेर करने का प्रयास करके इसे आसानी से जांच सकते हैं और देख सकते हैं कि बंद स्ट्रीम का कोई अपवाद उठाया गया है या नहीं। मेरा मानना है कि यह बंद हो जाएगा जैसा कि आप कई दस्तावेज़ उदाहरणों में देखते हैं, अंतर्निहित धारा गुमनाम रूप से बनाई गई है – giorashc
बस एक सुझाव: यदि आप जेडीके 7 का उपयोग कर रहे हैं, तो संसाधनों के साथ प्रयास करें, यह बहुत आसान है। [यहां] देखें (http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html)। –
सुझाव JavaNewbie_M107 के लिए धन्यवाद। जावा 7 अभी तक परियोजना में नहीं जोड़ा गया है। मैं इसके लिए तत्पर हूं –