Я создаю простую программу 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
не работает.