How to skip invalid characters in stream in Java/Scala? -
उदाहरण के लिए मेरे पास कोड है
source.fromFile (नया फ़ाइल (पथ), "UTF-8")। GetLines () और यह अपवाद फेंकता
थ्रेड में अपवाद "मुख्य" java.nio.charset.MalformedInputException: इनपुट लंबाई = 1 java.nio.charset.CoderResult.throwException (CoderResult.java माह 60) पर sun.nio.cs.StreamDecoder.implRead (StreamDecoder.java319) मैं डॉन 'कोई बात नहीं है अगर कुछ लाइनें नहीं पढ़ीं, लेकिन अमान्य वर्णों को कैसे छोड़ें और रीडिंग लाइनों को जारी रखने के लिए?
आप जिस तरह से वर्णसेट डिकोडिंग को कॉल करके अमान्य इनपुट को नियंत्रित कर सकते हैं, उसे प्रभावित कर सकते हैं।
<आम तौर पर em> आपको कभी भी वर्णसेटडिकोडर ऑब्जेक्ट सीधे नहीं दिखाई देगा, क्योंकि यह आपके लिए पर्दे के पीछे बनाया जाएगा इसलिए यदि आपको इसे एक्सेस करने की आवश्यकता है, तो आपको एपीआई का उपयोग करने की आवश्यकता होगी जो आपको सीधे CharsetDecoder को निर्दिष्ट करने के बजाय (केवल एन्कोडिंग नाम या Charset ) की अनुमति देता है। / P> इस तरह के एपीआई का सबसे बुनियादी उदाहरण है:
InputStream in = ...; वर्णसेटडिकोडर डिकोडर = स्टैंडर्डचर्सेट्स.यूटीएफ_8.न्यूडीकोडर (); decoder.onMalformedInput (CodingErrorAction.IGNORE); रीडर रीडर = नए इनपुटस्ट्रीम रीडर (इन, डिकोडर); ध्यान दें कि यह कोड जावा 7 वर्ग का उपयोग करता है, पहले के संस्करणों के लिए आप उसे (या इसके उपयोग से) प्रतिस्थापित कर सकते हैं।
Comments
Post a Comment