-1

我对 Java 有点陌生,所以我完全不知道如何解决以下问题。我正在编写一个小 cli 程序来处理 mysql-dump-files。在(希望)最后一次 Junit 测试中,处理了一个“更大”(990.3kB)的 Mysql 文件,只有这个文件给出了这个错误:

java.nio.charset.MalformedInputException: Input length = 1

错误消息和文档中的描述都没有给我一个提示来修复它。如果我用 Kate 打开文件,则会显示此错误:

来自 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() ) ) );

这是解决潜在字符集问题的方法吗?这会导致我遇到其他潜在问题吗?我真的很感激对细节的一些解释……

4

1 回答 1

-1

问题出在凯特身上

设置 -> 配置 -> 打开/保存

设置:线长限制为零。

它也是其他 KDE 编辑器的一个已知问题。

编辑

错过了java异常。该异常的可能原因是您没有获得UTF-8编码文件。

当输入字节序列对于给定字符集不合法或输入字符序列不是合法的 16 位 Unicode 序列时,将引发 MalformedInputException。

于 2013-09-03T07:03:49.120 回答