Tworzę prosty program do liczenia słów w Javie, który czyta pliki tekstowe katalogu.
Jednak ciągle otrzymuję błąd:
java.nio.charset.MalformedInputException: Input length = 1
z tego wiersza kodu:
BufferedReader reader = Files.newBufferedReader(file,Charset.forName("UTF-8"));
Wiem, że prawdopodobnie to rozumiem, ponieważ użyłem Charset
znaku, który nie zawierał niektórych znaków w plikach tekstowych, z których niektóre zawierały znaki innych języków. Ale chcę uwzględnić te postacie.
Później dowiedziałem się w JavaDocs, że Charset
jest opcjonalny i używany tylko do bardziej wydajnego odczytu plików, więc zmieniłem kod na:
BufferedReader reader = Files.newBufferedReader(file);
Ale niektóre pliki nadal wyrzucają MalformedInputException
. Nie wiem dlaczego.
Zastanawiałem się, czy istnieje all-inclusive Charset
, który pozwoli mi czytać pliki tekstowe z wieloma różnymi typami znaków ?
Dzięki.
ISO-8859-1
i działa dobrze. Myślę, że to dla europejskich postaci, co jest w porządku. Nadal nie wiem, dlaczegoUTF-16
nie działa.