代码:while((line = in.readLine())!= null){
byte[] bts = line.getBytes();
sun.io.ByteToCharConverter convertor = sun.io.ByteToCharConverter.getConverter("GBK");
char[] charArray = convertor.convertAll(bts);
for(int j = 0;j < charArray.length;j ++){
result += String.valueOf(charArray[j]);
}
}
in.close();
报错:
sun.io.MalformedInputException
        at sun.io.ByteToCharUTF8.convert(ByteToCharUTF8.java:278)
        at sun.nio.cs.StreamDecoder$ConverterSD.convertInto(StreamDecoder.java:316)
        at sun.nio.cs.StreamDecoder$ConverterSD.implRead(StreamDecoder.java:366)
        at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:252)
        at java.io.InputStreamReader.read(InputStreamReader.java:212)
        at java.io.BufferedReader.fill(BufferedReader.java:157)
        at java.io.BufferedReader.readLine(BufferedReader.java:320)
        at java.io.BufferedReader.readLine(BufferedReader.java:383)
        at com.sinosoft.platform.userRelationship.action.gotoSubSystem.getXiamenLibRes(gotoSubSystem.java:432)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:618)
        at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
        at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
        at com.sinosoft.platform.framework.domain.NoLoginInterceptor.intercept(NoLoginInterceptor.java:383)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
        at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)
        at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$Contr

解决方案 »

  1.   

    在网上查了一下,很多人这样说:
    这个问题产生的原因是IBM在JDK 1.4版本中为了追求对io通道的高效率改变了JDK 1.3中对io通道中异常处理的策略。IBM JDK 1.4中对于io通道的异常处理更加严格,因此系统中会报上面的错误。
    解决这一问题的办法是不使用IBM JDK 1.4中默认的io通道,而使用nio通道。具体的做法如下:
    1.打开管理控制台,找到并选择运行这个JSP的应用服务器
    2.依次选择进程定义,java虚拟机,一般JVM自变量
    3.添加-Dibm.stream.nio=true
    4.确定,保存
    5.重新启动该服务器我的服务器是AIX,具体应该怎样操作呢(服务器不能重启,因为是和其他服务共用的)
      

  2.   

    http://jlins.javaeye.com/blog/568029看这个有没有帮助
      

  3.   

    这个和我上面说的是一样的呀 可是需要重启服务器啊  还有 打开管理控制台,找到并选择运行这个JSP的应用服务器  这一句是什么意思 我用的是tomcat