我试图使用流来读取文件,但我无法通过异常。我一直在四处张望,但我只是不明白为什么会被扔出去。
我将要读取的文件是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通常,我不会发布关于异常的简单问题,但我只是想出一个答案。
发布于 2016-05-10 11:30:22
UncheckedIOException正在包装一个MalformedInputException --这是一个未隐藏的错误。JavaDoc的意思是:
如果输入字节序列对给定字符集不合法,或者输入字符序列不是合法的16位Unicode序列,则引发选中异常。
因此,您的file.txt不包含有效的UTF-8,并导致UTF-8解码器报告错误。
https://stackoverflow.com/questions/37136973
复制相似问题