我对Java有点新,所以我绝对不知道如何解决以下问题。我正在编写一个小的cli程序来处理mysql-dump-files。在(希望)最后一次Junit测试中,处理了一个“更大”(990.3kB)的Mysql文件,只有这个文件才会出现这个错误:
java.nio.charset.MalformedInputException: Input length = 1
错误消息没有docs中的说明给我一个热点来修复它。如果我用Kate打开文件,则显示错误:
现在代码*看起来像:
String line;
BufferedReader reader = Files.newBufferedReader(in, Charset.forName( "UTF-8" ) );
while( ( line = reader.readLine() ) != null )
{
//processing stuff goes here
}
*调用reader.readLine()
是导致错误的原因。
我想我需要改变如何阅读文件的方式,但这只是猜测并希望在这里得到一些好的帮助。如果任何人都有一个资源链接,它提供了一些背景资料,那也很好。
提前致谢!
修改
经过一些搜索后,我可以通过将上面的代码更改为:
来设法使Java读取该文件BufferedReader reader =
new BufferedReader(
new InputStreamReader(
new FileInputStream( in.toFile() ) ) );
这是解决潜在charset问题的方法吗?这会引导我解决其他潜在问题吗?我真的很感激有关细节的一些解释......
答案 0 :(得分:-1)
问题在于凯特。
设置 - >配置 - >打开/保存
设置:行长度限制为零。
与其他KDE编辑器一起知道issue。
修改强>
错过了java异常。该异常的可能原因是您不获取 UTF-8 编码文件。
当输入字节序列不是时,抛出MalformedInputException 给定字符集合法,或输入字符序列不合法 十六位Unicode序列。