ディレクトリのテキストベースのファイルを読み取る、Java で簡単な単語カウント プログラムを作成しています。
しかし、次のエラーが発生し続けます:
java.nio.charset.MalformedInputException: Input length = 1
このコード行から:
BufferedReader reader = Files.newBufferedReader(file,Charset.forName("UTF-8"));
おそらく、テキスト ファイル内の一部の文字 (他の言語の文字を含むものも含む) が含まれていないを使用したために、このような結果になったのだと思いますCharset
。しかし、それらの文字も含めたいのです。
私は後にJavaドキュメントはCharset
オプションであり、ファイルの読み取りを効率化するためにのみ使用されるため、コードを次のように変更しました。
BufferedReader reader = Files.newBufferedReader(file);
しかし、一部のファイルはまだ をスローしますMalformedInputException
。理由はわかりません。
Charset
さまざまな種類の文字を含むテキストファイルを読み取ることができる包括的なものがあるかどうか疑問に思っていました?
ありがとう。
ベストアンサー1
サポートされているエンコードのリストが必要になる場合があります。各ファイルに対して、UTF-8 から始めて、各エンコードを順番に試してください。 が見つかるたびにMalformedInputException
、次のエンコードを試してください。