我对 Java 有点陌生,所以我完全不知道如何解决以下问题。我正在编写一个小 cli 程序来处理 mysql-dump-files。在(希望)最后一次 Junit 测试中,处理了一个“更大”(990.3kB)的 Mysql 文件,只有这个文件给出了这个错误:
java.nio.charset.MalformedInputException: Input length = 1
错误消息和文档中的描述都没有给我一个提示来修复它。如果我用 Kate 打开文件,则会显示此错误:
现在代码*看起来像:
String line;
BufferedReader reader = Files.newBufferedReader(in, Charset.forName( "UTF-8" ) );
while( ( line = reader.readLine() ) != null )
{
//processing stuff goes here
}
*调用reader.readLine()
是导致错误的原因。
我想我需要改变读取文件的方式,但这只是猜测并希望在这里得到一些好的帮助。如果有人有一个资源链接,它提供了一些背景信息,那也很好。
提前谢谢!
编辑:
经过一番搜索,我可以通过将上面的代码更改为:
BufferedReader reader =
new BufferedReader(
new InputStreamReader(
new FileInputStream( in.toFile() ) ) );
这是解决潜在字符集问题的方法吗?这会导致我遇到其他潜在问题吗?我真的很感激对细节的一些解释……