您的位置:首页 > 编程语言 > Java开发

Exception in thread "main" java.nio.charset.MalformedInputException: Input length = 1

2015-10-16 19:45 2091 查看

异常信息

D:\Develop\JDK\jdk-7u79-windows-i586\bin\java -Didea.launcher.port=7536 "-Didea.launcher.bin.path=D:\Develop\Scala\IntelliJ IDEA Community Edition 14.1.3\bin" -Dfile.encoding=UTF-8 -classpath "D:\Develop\JDK\jdk-7u79-windows-i586\jre\lib\charsets.jar;D:\Develop\JDK\jdk-7u79-windows-i586\jre\lib\deploy.jar;D:\Develop\JDK\jdk-7u79-windows-i586\jre\lib\javaws.jar;D:\Develop\JDK\jdk-7u79-windows-i586\jre\lib\jce.jar;D:\Develop\JDK\jdk-7u79-windows-i586\jre\lib\jfr.jar;D:\Develop\JDK\jdk-7u79-windows-i586\jre\lib\jfxrt.jar;D:\Develop\JDK\jdk-7u79-windows-i586\jre\lib\jsse.jar;D:\Develop\JDK\jdk-7u79-windows-i586\jre\lib\management-agent.jar;D:\Develop\JDK\jdk-7u79-windows-i586\jre\lib\plugin.jar;D:\Develop\JDK\jdk-7u79-windows-i586\jre\lib\resources.jar;D:\Develop\JDK\jdk-7u79-windows-i586\jre\lib\rt.jar;D:\Develop\JDK\jdk-7u79-windows-i586\jre\lib\ext\access-bridge.jar;D:\Develop\JDK\jdk-7u79-windows-i586\jre\lib\ext\dnsns.jar;D:\Develop\JDK\jdk-7u79-windows-i586\jre\lib\ext\jaccess.jar;D:\Develop\JDK\jdk-7u79-windows-i586\jre\lib\ext\localedata.jar;D:\Develop\JDK\jdk-7u79-windows-i586\jre\lib\ext\sunec.jar;D:\Develop\JDK\jdk-7u79-windows-i586\jre\lib\ext\sunjce_provider.jar;D:\Develop\JDK\jdk-7u79-windows-i586\jre\lib\ext\sunmscapi.jar;D:\Develop\JDK\jdk-7u79-windows-i586\jre\lib\ext\sunpkcs11.jar;D:\Develop\JDK\jdk-7u79-windows-i586\jre\lib\ext\zipfs.jar;D:\Develop\Scala\IntelliJ IDEA Projects\scalaProjects\out\production\scalaProjects;C:\Users\Administrator.TAEJYCFQ0UOHIX6\.ivy2\cache\org.scala-lang\scala-library\jars\scala-library-2.11.7.jar;C:\Users\Administrator.TAEJYCFQ0UOHIX6\.ivy2\cache\org.scala-lang\scala-reflect\jars\scala-reflect-2.11.7.jar;D:\Develop\Scala\IntelliJ IDEA Community Edition 14.1.3\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain kmust.hjr.learningScala18.FileOps
Exception in thread "main" java.nio.charset.MalformedInputException: Input length = 1
at java.nio.charset.CoderResult.throwException(CoderResult.java:277)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:338)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:154)
at java.io.BufferedReader.readLine(BufferedReader.java:317)
at java.io.BufferedReader.readLine(BufferedReader.java:382)
at scala.io.BufferedSource$BufferedLineIterator.hasNext(BufferedSource.scala:72)
at scala.collection.Iterator$class.foreach(Iterator.scala:742)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1194)
at kmust.hjr.learningScala18.FileOps$.main(FileOps.scala:11)
at kmust.hjr.learningScala18.FileOps.main(FileOps.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)

Process finished with exit code 1


附图:



解决方案

说明:在处理文本文件字符编码转换时碰到此问题

以前Java中遇到过此类问题:

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

at java.nio.charset.CoderResult.throwException(Unknown Source) [na:1.6.0_17]

at org.apache.mina.core.buffer.AbstractIoBuffer.getString(AbstractIoBuffer.java:1442) [comet-server.jar:na]

JAVA API 中的说明是当输入字节序列对于给定 charset 来说是不合法的,或者输入字符序列不是合法的 16 位 Unicode 序列时,抛出此经过检查的异常
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: