异常sun.io.MalformedInputException处理

今天在重新安装系统以后,我装了个jdk50,然后发现以前写的代码在运行的时候出错了,出错的地方是文件读写.
BufferedReader br = new BufferedReader(new FileReader(File file));
br.readLine();
就在br.readLine()的时候就出错了.很奇怪!

于是上网google了一下,按照网上朋友的说法解决问题了.但对问题仍然理解不是很透彻,所以记在这里.以防以后再次碰见类似问题.

这个异常产生的原因是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.重新启动该服务器 

你可能感兴趣的:(异常sun.io.MalformedInputException处理)