ฉันกำลังสร้างโปรแกรม wordcount อย่างง่ายใน Java ที่อ่านไฟล์ตามข้อความของไดเร็กทอรี
อย่างไรก็ตามฉันยังคงได้รับข้อผิดพลาด:
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
ไม่ได้ผล