java - How can I read a smaller ByteBuffer from a larger ByteBuffer? -


जबकि ByteBuffer.put (ByteBuffer) विधि मौजूद है, ByteBuffer.get ( ByteBuffer) गायब हो रहा है? मुझे एक बड़ा बाइटबफर

ByteBuffer पढ़ने के लिए कैसे प्राप्त करना चाहिए? = "Text">

बाइटबफ़र # डाल विधि मौजूद है:

सार्वजनिक बाइटबफर डाल (बाइटबफ़र src) : यह विधि

सार्वजनिक ByteBuffer प्राप्त करें (ByteBuffer डीएसटी)

आप इस तरह के बफ़र में दिए गए स्रोत बफ़र में बाइट्स को स्थानांतरित कर सकते हैं < / Strong>: यह विधि इस बफर में दिए गए लक्ष्य को बफ़र में दिए गए लक्ष्य बफर में स्थानांतरित करता है

लेकिन उस पर विचार करें कि कार्रवाई प्राप्त करें और डाल कुछ हद तक सममित हैं

  बाइटबफ़र src = ... बाइटबफर डीएसटी = ... // एसआरसीजीट (डीएसटी); // मौजूद नहीं है dst.put (src); // इसे इसके बजाय  

इसके बारे में स्पष्ट रूप से छोटा और बड़ा बफ़र्स के बारे में बात की। इसलिए मुझे लगता है कि डीएसटी बफर src बफर से छोटा है इस स्थिति में, आप इसके अनुसार स्रोत बफर की सीमा निर्धारित कर सकते हैं:

  ByteBuffer src = ... ByteBuffer dst = ... int oldLimit = src.limit (); src.limit (src.position () + dst.remaining ()); dst.put (एसआरसी); src.limit (oldLimit);  

वैकल्पिक फार्मूलेशन संभव हैं (जैसे मूल बफर का बाइटबफ़र # स्लाइस () का उपयोग करना)। लेकिन किसी भी स्थिति में, आप बफर सामग्री को एक नई बाइट सरणी में कॉपी करने के लिए किसी अन्य बफ़र में स्थानांतरित करने के लिए नहीं करना है!


Comments