एक सर्वलेट में, मैं एक स्ट्रिंगबिल्डर में HTML सामग्री की एक बड़ी मात्रा का निर्माण कर रहा हूं, अंत में, प्रतिक्रिया के प्रिंटवाइटर को लिखा जाना चाहिए। प्रिंटवाइटर का उपयोग करने के लिए, सामग्री को स्ट्रिंग के रूप में प्राप्त करने के लिए इसे पहले स्ट्रिंगबिल्डर के टूस्ट्रिंग() विधि को कॉल करना होगा। लेकिन यह अनावश्यक रूप से सामग्री को डुप्लिकेट करता है। क्या स्ट्रिंगबिल्डर से सीधे लिखने का कोई तरीका है क्योंकि यह पहले से ही सामग्री धारण कर रहा है?बिना स्ट्रिंग के एक स्ट्रिंगबिल्डर लिखें, (
प्रिंटवाइटर एक CharSequence स्वीकार कर सकता है, लेकिन प्रलेखन में कहा गया है कि यह CharSequence के toString() को कॉल करता है, इसलिए यह वास्तव में मदद नहीं करता है।
एकमात्र स्पष्ट तरीका मैं देख सकता हूं कि एक समय में एक चरित्र प्राप्त करने और लिखने के लिए स्ट्रिंगबिल्डर के charAt (i) विधि का उपयोग करना है, लेकिन क्या यह एक सुधार होगा?
सुधार सापेक्ष है। यदि आपका लक्ष्य स्मृति खपत को कम करना है, तो हाँ यह एक सुधार होगा। यदि आप धीमे हो तो आपको परीक्षण करना चाहिए। मुझे आश्चर्य नहीं होगा अगर आउटपुट स्ट्रीम के बफरिंग के कारण - प्रदर्शन दंड इतना बड़ा नहीं था। –