मुझे java.nio.ByteBuffer
की सामग्री को java.io.OutputStream
में डालना होगा। (इच्छा है कि मेरे पास Channel
था लेकिन मैं नहीं करता) ऐसा करने का सबसे अच्छा तरीका क्या है?एक बाइटबफर की सामग्री को आउटपुटस्ट्रीम में कैसे रखा जाए?
मैं ByteBuffer के array()
विधि का उपयोग नहीं कर सकते हैं क्योंकि यह केवल पढ़ने के लिए बफर हो सकता है।
मैं इस बाइटबफर का उपयोग करने के बीच आउटपुटस्ट्रीम में भी लिख सकता हूं और नियमित रूप से byte[]
का नियमित सरणी कर सकता हूं जिसे मैं सीधे OutputStream.write()
उपयोग कर सकता हूं।
यदि मैं चैनल के साथ-साथ स्ट्रीम भी रखता हूं, तो क्या मैं दोनों को कॉल इंटरमीक्स कर सकता हूं? –
हां, निश्चित रूप से, चैनल हर बार चैनल बनाने की लागत कम कर देता है :) –
ध्यान दें कि इस दृष्टिकोण में बाइटबफर से एक अस्थायी सरणी में कॉपी करना शामिल है जिसे आउटपुटस्ट्रीम में लिखा जाता है। यदि प्रदर्शन महत्वपूर्ण है, तो आपको अनावश्यक ब्लॉक प्रतियों से बचने के लिए थोड़ा सा रिफैक्टरिंग करने की आवश्यकता हो सकती है। –