मैं निर्दिष्ट चार्टसेट का उपयोग करके आउटपुटस्ट्रीम में एक CharSequence लिखना चाहता हूं। असल में एक ही CharSet के साथ शुरू किया गया एक राइटर क्या करेगा, जब लिखना (स्ट्रिंग) कहा जाता है।एक CharSet (बिना स्ट्रिंग में कनवर्ट किए) का उपयोग करके CharSequence को एन्कोड करने के लिए कैसे करें
पकड़ है, कई CharSequences लिखे जाने हैं और कुछ बहुत बड़े हैं। मामलों को जटिल बनाने के लिए और अधिक कुछ आउटपुटस्ट्रीम के लिए लिखा जा सकता है। मैं आसानी से लागू कर सकते हैं कि का उपयोग करके (वास्तव में मैं वर्तमान में इसे उस तरह से लागू कर दिया है):
byte[] rawBytes = CharSequence.toString().getBytes(CharSet)
for (OutputStream out : outputTargets) {
out.write(rawBytes);
}
लेकिन स्पष्ट रूप से स्ट्रिंग एक पूरी तरह से अवांछित कचरा वस्तु यहाँ है, के रूप में बाइट [] सरणी है। मैं एक ऐसी विधि की तलाश में हूं जो मुझे इंटरमीडिएट ऑब्जेक्ट्स के बिना सीधे एन्कोडिंग करने की अनुमति देता है। आश्चर्य की बात यह असंभव प्रतीत होती है - हर जगह मैंने जेआरई में देखा जहां एक CharSequence स्वीकार किया जाता है, यह किसी भी काम से पहले इसे स्ट्रिंग में जल्दी से परिवर्तित कर देता है।
चार्टसेट के लिए रूपांतरण कार्य का अधिकांश (सभी?) गैर-सार्वजनिक वर्गों में किया जाता है, इसलिए मुझे किसी भी पारदर्शी और कानूनी तरीके से इसका उपयोग करने का कोई तरीका नहीं मिला है।
कचरा कैसे बचाया जा सकता है/जेआरई की चारसेट एन्कोडिंग सुविधाओं का सीधे उपयोग किया जा सकता है?
देखें CharsetEncoder – ZhongYu