जावा में लंबे समय तक बाइट ऐरे और बैक में कनवर्ट करना
जावा में, एक लंबे आदिम डेटा प्रकार को बाइट ऐरे में कनवर्ट करना (बाइट[] ) और इसके विपरीत विभिन्न परिचालनों के लिए एक सामान्य कार्य है, जैसे टीसीपी कनेक्शन पर डेटा भेजना। इस रूपांतरण को प्राप्त करने के लिए यहां एक व्यापक समाधान दिया गया है:
Long to Byte Array
public byte[] longToBytes(long x) {
ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);
buffer.putLong(x);
return buffer.array();
}
यह विधि Long.BYTES आकार का बफर बनाने के लिए ByteBuffer वर्ग का उपयोग करती है, जो एक लंबे मान को दर्शाने के लिए आवश्यक बाइट्स की संख्या है। पुटलॉन्ग () विधि का उपयोग बफर में लंबे मान को लिखने के लिए किया जाता है, और एरे () विधि लंबे समय का प्रतिनिधित्व करने वाले अंतर्निहित बाइट सरणी को लौटाती है।
बाइट ऐरे को लॉन्ग
public long bytesToLong(byte[] bytes) {
ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);
buffer.put(bytes);
buffer.flip(); // Flip the buffer to prepare for reading
return buffer.getLong();
}
बाइट सरणी को वापस लॉन्ग में बदलने के लिए, एक नया बाइटबफ़र बनाया जाता है और दिए गए बाइट सरणी के साथ लोड किया जाता है। बफ़र को पढ़ने के लिए तैयार करने के लिए फ्लिप() विधि का उपयोग किया जाता है। अंत में, getLong() विधि बफ़र से लंबे मान को पढ़ती है। क्लास:
पब्लिक क्लास बाइटयूटिल्स { निजी स्थैतिक बाइटबफ़र बफ़र = बाइटबफ़र.आवंटित(लॉन्ग.BYTES); सार्वजनिक स्थैतिक बाइट[] longToBytes(लंबा x) { बफ़र.पुटलॉन्ग(0, x); वापसी बफ़र.सरणी(); } सार्वजनिक स्थैतिक लंबे बाइट्सटूलॉन्ग(बाइट[] बाइट्स) { बफर.पुट(बाइट्स, 0, बाइट्स.लेंथ); बफ़र.फ़्लिप(); // पढ़ने की तैयारी के लिए बफ़र को पलटें वापसी बफ़र.getLong(); } }
यह उपयोगिता वर्ग हर बार बाइटबफ़र उदाहरणों को बनाए और प्रबंधित किए बिना रूपांतरण करने का एक सरल तरीका प्रदान करता है।public class ByteUtils {
private static ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);
public static byte[] longToBytes(long x) {
buffer.putLong(0, x);
return buffer.array();
}
public static long bytesToLong(byte[] bytes) {
buffer.put(bytes, 0, bytes.length);
buffer.flip(); // Flip the buffer to prepare for reading
return buffer.getLong();
}
}
नोट कि बाइटबफ़र वर्ग सिस्टम की मूल एंडियननेस का उपयोग करता है। यदि क्रॉस-प्लेटफ़ॉर्म संगतता की आवश्यकता है, तो एंडियननेस को संभालने के लिए अतिरिक्त विचार आवश्यक हो सकते हैं।
वैकल्पिक समाधान: पुस्तकालयों का उपयोग करना
हालांकि ऊपर दिए गए मूल जावा समाधान पर्याप्त हैं, वे कुछ परिदृश्यों में थकाऊ हो सकते हैं। जटिल या विस्तारित डेटा रूपांतरण आवश्यकताओं के लिए, गुवा या अपाचे कॉमन्स जैसी लाइब्रेरी का उपयोग करने पर विचार करें, जो अधिक व्यापक और कुशल समाधान प्रदान करते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3