मैं जावा में एक सरल वर्डकाउंट प्रोग्राम बना रहा हूं जो निर्देशिका की पाठ-आधारित फ़ाइलों के माध्यम से पढ़ता है।
हालाँकि, मैं त्रुटि प्राप्त करता रहता हूँ:
java.nio.charset.MalformedInputException: Input length = 1
कोड की इस पंक्ति से:
BufferedReader reader = Files.newBufferedReader(file,Charset.forName("UTF-8"));
मुझे पता है कि मुझे शायद यह मिल गया है क्योंकि मैंने एक का उपयोग किया है Charsetजिसमें पाठ फ़ाइलों में कुछ वर्ण शामिल नहीं थे, जिनमें से कुछ में अन्य भाषाओं के वर्ण शामिल थे। लेकिन मैं उन किरदारों को शामिल करना चाहता हूं।
मैंने बाद में JavaDocs में सीखा कि Charsetवैकल्पिक है और केवल फाइलों के अधिक कुशल पढ़ने के लिए उपयोग किया जाता है, इसलिए मैंने कोड बदल दिया:
BufferedReader reader = Files.newBufferedReader(file);
लेकिन कुछ फाइलें अभी भी फेंकती हैं MalformedInputException। मुझे पता नहीं क्यों।
मैं सोच रहा था कि क्या कोई सर्व-समावेशी है Charsetजो मुझे कई अलग-अलग प्रकार के पात्रों के साथ पाठ फ़ाइलों को पढ़ने की अनुमति देगा ?
धन्यवाद।
ISO-8859-1और यह अच्छी तरह से काम करता है। मुझे लगता है कि यह यूरोपीय पात्रों के लिए है, जो ठीक है। मैं अभी भी नहीं जानता किUTF-16काम क्यों नहीं करता है, हालांकि।