आप आमतौर पर पहले इनपुट स्ट्रीम से पढ़ते हैं और फिर उसे बंद कर देते हैं। आप FileInputStream को अन्य InputStream (या रीडर) में लपेट सकते हैं। रैपिंग स्ट्रीम / रीडर को बंद करने पर यह अपने आप बंद हो जाएगा।
यदि यह कॉलर को एक इनपुटस्ट्रीम वापस करने वाली एक विधि है, तो इसके साथ समाप्त होने पर स्ट्रीम को बंद करना कॉलर की जिम्मेदारी है। यदि आप इसे अपनी विधि में बंद करते हैं, तो कॉलर इसका उपयोग करने में सक्षम नहीं होगा।
आपकी कुछ टिप्पणियों का जवाब देने के लिए ...
इनपुटस्ट्रीम को दूरस्थ उपभोक्ता को भेजने के लिए, आप इनपुटस्ट्रीम की सामग्री को आउटपुटस्ट्रीम में लिखेंगे, और फिर दोनों स्ट्रीम को बंद कर देंगे।
दूरस्थ उपभोक्ता आपके द्वारा बनाई गई स्ट्रीम ऑब्जेक्ट के बारे में कुछ भी नहीं जानता है। वह केवल एक इनपुटस्ट्रीम में सामग्री प्राप्त करता है, जिसे वह बनाएगा, पढ़ेगा और बंद करेगा।