java 8使用streams读取文件java.io.uncheckedioexception

vdzxcuhz  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(411)

这个问题在这里已经有答案了

files.readallbytes vs files.lines获取格式错误的输入异常(4个答案)
四年前关门了。
我试图使用流读取文件,但我无法通过异常。我四处看了看,但我就是不明白为什么要扔。
我要读的文件是 file.txt 它是用utf-8编码的。
我正在用 Files.lines() :

String path = FileWordCount.class.getResource("file.txt").getPath().substring(1);

Files.lines(Paths.get(path), Charset.forName("UTF-8")).forEach(System.out::println);

尝试读取文件时出现以下异常:

Exception in thread "main" java.io.UncheckedIOException: java.nio.charset.MalformedInputException: Input length = 1
[...]
Caused by: java.nio.charset.MalformedInputException: Input length = 1

通常我不会发布关于异常的简单问题,但我只是想办法解决这个问题。

jgzswidk

jgzswidk1#

这个 UncheckedIOException 正在 Package 一个 MalformedInputException -这就是解锁错误。javadoc上说:
当输入字节序列对于给定字符集不合法,或输入字符序列不是合法的16位unicode序列时引发的检查异常。
所以你的 file.txt 不包含有效的utf-8,并导致utf-8解码器报告错误。

相关问题