मेरे पास एक फ़ाइल में बाइनरी डेटा है जिसे मैं बाइट सरणी में पढ़ सकता हूं और बिना किसी समस्या के प्रक्रिया कर सकता हूं। अब मुझे किसी XML दस्तावेज़ में तत्वों के रूप में नेटवर्क कनेक्शन पर डेटा के हिस्सों को भेजने की आवश्यकता है। मेरी समस्या यह है कि जब मैं डेटा को बाइट्स की सरणी से स्ट्रिंग में और बाइट्स की सरणी में वापस परिवर्तित करता हूं, तो डेटा दूषित हो रहा है। मैंने स्ट्रिंग रूपांतरण में समस्या को अलग करने के लिए एक मशीन पर इसका परीक्षण किया है, इसलिए अब मुझे पता है कि यह एक्सएमएल पार्सर या नेटवर्क ट्रांसपोर्ट द्वारा दूषित नहीं हो रहा है।आप बाइनरी डेटा को स्ट्रिंग्स और जावा में वापस कैसे परिवर्तित करते हैं?
क्या मैं अभी मिल गया है है
byte[] buffer = ...; // read from file
// a few lines that prove I can process the data successfully
String element = new String(buffer);
byte[] newBuffer = element.getBytes();
// a few lines that try to process newBuffer and fail because it is not the same data anymore
किसी को भी कैसे स्ट्रिंग के लिए द्विआधारी बदलने और डेटा हानि के बिना वापस करने के लिए पता है?
उत्तर: धन्यवाद सैम। मुझे एक बेवकूफ की तरह महसूस हो रहा है। मैंने कल जवाब दिया था क्योंकि मेरा एसएक्स पार्सर शिकायत कर रहा था। किसी कारण से जब मैं इस अलग-अलग मुद्दे में भाग गया, तो यह मेरे लिए नहीं हुआ कि यह एक ही समस्या का एक नया लक्षण था।
संपादित करें: पूर्णता के लिए, मैंने इस समस्या को हल करने के लिए Apache CommonsCodec पैकेज से Base64 कक्षा का उपयोग किया।