Ich erstelle ein einfaches Wordcount-Programm in Java, das die textbasierten Dateien eines Verzeichnisses liest.
Ich erhalte jedoch immer wieder den Fehler:
java.nio.charset.MalformedInputException: Input length = 1
aus dieser Codezeile:
BufferedReader reader = Files.newBufferedReader(file,Charset.forName("UTF-8"));
Ich weiß, dass ich das wahrscheinlich bekomme, weil ich ein verwendet habe Charset
, das einige der Zeichen in den Textdateien nicht enthielt, von denen einige Zeichen anderer Sprachen enthielten. Aber ich möchte diese Zeichen einschließen.
Ich habe später bei den JavaDocs erfahren, dass das Charset
optional ist und nur zum effizienteren Lesen der Dateien verwendet wird. Deshalb habe ich den Code geändert in:
BufferedReader reader = Files.newBufferedReader(file);
Aber einige Dateien werfen immer noch die MalformedInputException
. Ich weiß nicht warum.
Ich habe mich gefragt, ob es ein All-Inclusive-Angebot gibt Charset
, mit dem ich Textdateien mit vielen verschiedenen Zeichentypen lesen kann .
Vielen Dank.
ISO-8859-1
und es funktioniert gut. Ich denke, es ist für europäische Charaktere, was in Ordnung ist. Ich weiß immer noch nicht, warumUTF-16
es nicht funktioniert.