मैं कई बार स्ट्रीम का उपयोग कर रहा हूं लेकिन मैंने कभी भी इस बारे में बहुत कुछ नहीं पढ़ा कि वे वास्तव में कैसे काम करते हैं। न ही मैं उनके बारे में बहुत कुछ जानता हूं कि एक धारा सिर्फ एक रूपक है। एक धारा केवल बाइट्स के अनुक्रम का प्रतिनिधित्व करती है। मैं वास्तव में काम करने के बारे में बहुत कुछ नहीं जानता, मुझे लगता है कि जावा में एक फ़ाइल स्ट्रीम खोलने से ओएस के साथ बातचीत होती है जिसमें स्ट्रीम में "पॉइंटर" देने की कार्यक्षमता होती है।जावा में स्ट्रीम मेमोरी खपत को कैसे प्रभावित करती है?
मूल रूप से मेरा प्रश्न यह है कि स्ट्रीम मेमोरी खपत को कैसे प्रभावित करती है। जब आपके पास उदाहरण के लिए एक इनपुट स्ट्रीम है और आप इसे पढ़ना शुरू करते हैं तो आप केवल बाइट्स की मात्रा के साथ मेमोरी खपत में वृद्धि करना शुरू कर देते हैं? जावा में स्ट्रीम खोलते समय आप वास्तव में पढ़ने से पहले पूर्ण फ़ाइल लोड नहीं करते हैं? यदि आप एक स्ट्रीम से पढ़ते हैं और सीधे किसी अन्य स्ट्रीम पर लिखते हैं तो आप केवल उस बाइट्स की मात्रा के साथ स्मृति को बढ़ाते हैं (और संभावित रूप से बफर में)? यदि आप जावा में बाइट सरणी में बाइट्स पढ़ते हैं तो आप स्मृति के खपत को फ़ाइल के आकार के साथ बढ़ाते हैं?
एक अजीब प्रश्न की तरह लग सकता है लेकिन मुझे मेरी समझ पर कुछ मार्गदर्शन/सुधार की आवश्यकता हो सकती है। धन्यवाद।
आपके पास एक बहुत अच्छी व्याख्या है [यहां] (http://www.ibm.com/developerworks/library/j-zerocopy/index.html) शून्य प्रति। यह बफर और स्मृति उपयोग को भी समझाता है। –