2010-02-08 14 views
16

जेएनएलपी का उपयोग करके, मेरे पास यह लाइन है:StringBufferInputStream को StringReader के साथ कैसे बदलें?

File_Save_Service.saveFileDialog(null,null,new StringBufferInputStream("testing"),null); 

इस लाइन में StringReader के साथ StringBufferInputStream को कैसे बदलें? StringBufferInputStream के लिए API का कहना है कि स्ट्रिंग रीडर का बेहतर उपयोग करें, लेकिन विभिन्न प्रकारों के बीच कैसे परिवर्तित करें?

उत्तर

28

FileSaveService.saveFileDialog एक इनपुटस्ट्रीम लेता है, न कि पाठक (क्योंकि यह बाइनरी डेटा चाहता है, चरित्र डेटा नहीं)।

स्ट्रिंगबफर इनपुटपुट को हटा दिया गया है क्योंकि यह वर्णों को बाइट्स में ठीक से परिवर्तित नहीं करता है।

आप ByteArrayInputStream बजाय का उपयोग कर सकते हैं:

new ByteArrayInputStream("the string".getBytes("UTF-8")) 
+1

प्रमुख मुद्दा InputStream पता करने के लिए अपने बाइट्स सांकेतिक शब्दों में बदलना करने के लिए कैसे की जरूरत है। – Matt

+0

हां, आपको उपरोक्त उदाहरण में एन्कोडिंग (यूटीएफ -8) चुनना होगा। – Thilo

1

मानक जावा क्लास लाइब्रेरी Reader को InputStream के रूप में लपेटने का कोई तरीका नहीं प्रदान करते हैं, लेकिन निम्न SO प्रश्न और इसके उत्तर कुछ समाधान प्रदान करते हैं। ठीक प्रिंट पढ़ने के लिए सावधान रहें!

How to convert a Reader to InputStream and a Writer to OutputStream?

हालांकि, यह आसान है, तुम क्या मिल गया है के साथ सिर्फ रहना (यदि यह सिर्फ इकाई परीक्षण कोड है ... के रूप में यह प्रतीत होता है), या एक ByteArrayInputStream के रूप में साथ StringInputStream को बदलने के लिए @ थिलो के उत्तर द्वारा वर्णित।

संबंधित मुद्दे