मुझे यहां काफी समस्या है, और मुझे लगता है कि ऐसा इसलिए है क्योंकि मुझे समझ में नहीं आता कि मुझे जावा द्वारा प्रदान की गई API का उपयोग कैसे करना चाहिए।ByteArrayOutputStream और DataOutputStream का उपयोग कैसे करें (जावा)
मैं एक int
और एक byte[]
में एक byte[]
मैं एक DataOutputStream
का उपयोग कर हल करने के लिए डेटा writeInt(int i)
और write(byte[] b)
के साथ लेखन, और डाल करने के लिए है कि एक बाइट सरणी में सक्षम होने के लिए के बारे में सोचा लिखने की ज़रूरत मैं चाहिए का उपयोग ByteArrayOutputStream
विधि toByteArray().
मैं समझता हूँ कि यह कक्षाएं आवरण पैटर्न का उपयोग, तो मैं दो विकल्प था:
DataOutputStream w = new DataOutputStream(new ByteArrayOutputStream());
या
ByteArrayOutputStream w = new ByteArrayOutputStream(new DataOutputStream());
लेकिन दोनों ही मामलों में, मैं "ढीला" एक विधि। पहले मामले में, मैं toByteArray()
विधि तक नहीं पहुंच सकता, और दूसरे में, मैं writeInt()
विधि तक नहीं पहुंच सकता।
मुझे इन कक्षाओं को एक साथ कैसे उपयोग करना चाहिए?
की तरह अधिक मैं हमेशा आश्चर्य किया है, वहाँ वास्तव में मैं फ्लश करने के लिए एक लिपटे 'ByteArrayOutputStream' कारण क्या है? – Justin
ऐसा नहीं है लेकिन आप कभी भी एक रैपर के व्यवहार को नहीं जानते हैं। यह वास्तव में कुछ बफर कर सकता था इसलिए मैं आदत से रैपर को फ्लश करता हूं :)। यदि यह पास-थ्रू रैपर है तो उसे चोट नहीं पहुँचना चाहिए। –
क्या आप बाइटएरे वैरिएबल घोषित कर सकते हैं? और वास्तव में क्या w.write (byteArray); कर? –