隨筆 - 14, 文章 - 39, 評論 - 17, 引用 - 0

          導航

          <2011年6月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          關于讀取文件內容時報sun.io.MalformedInputException的問題 [轉]

          在網上找到的原因是這樣的:
          這個問題產生的原因是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.重新啟動該服務器

          本來我就懷疑又是IBM JDK的問題,果然被我不幸言中了,再次表示一下郁悶!

          我發現在我需要讀取的文件當中存在這樣的一些亂碼字符

          我原來是用下面這段程序讀取這個文件的內容并打印的:
          FileReader fr = new FileReader(file);
          BufferedReader br = new BufferedReader(fr);
          String str="";
          String result = "";
          while((str=br.readLine())!=null){
              result += str + "\n";
          }
          即逐行讀取的方法,我想也是一般的方法,但是就是這個readline方法導致了IBM JDK 1.4.2 報了這個sun.io.MalformedInputException的問題.

          我現在使用的解決方法如下:
          String result = "";
          StringBuffer sBuffer=new StringBuffer();
          FileInputStream fis=new FileInputStream(file);
          BufferedInputStream bis=new BufferedInputStream(fis);
          String tempStr;
          byte[] b = new byte[1024];
          int i = 0;
          while ((i = bis.read(b)) > 0) {
              tempStr=new String(b,0,i);
              sBuffer.append(tempStr);
          }
          result = sBuffer.toString();

          即逐字節讀取的方法.這樣處理就可以正常讀取了!

          具體到底為什么會出現這種問題現在還沒弄明白,估計也弄不明白了!


          posted on 2007-03-01 10:08 mlw2000 閱讀(3762) 評論(4)  編輯  收藏

          評論

          # re: 關于讀取文件內容時報sun.io.MalformedInputException的問題 [轉]  回復  更多評論   

          我也碰到這個問題,逐行讀取,碰到中文就報這個錯!
          實在搞不定,現在換逐字符讀取試試
          2007-07-12 19:27 | kvill

          # re: 關于讀取文件內容時報sun.io.MalformedInputException的問題 [轉]  回復  更多評論   

          好~~~
          2007-12-25 16:55 | java綜合網

          # re: 關于讀取文件內容時報sun.io.MalformedInputException的問題 [轉]  回復  更多評論   

          多謝
          2011-06-16 17:40 | Monroe

          # re: 關于讀取文件內容時報sun.io.MalformedInputException的問題 [轉]  回復  更多評論   

          3Q
          2011-11-29 16:55 | Endy

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 贡觉县| 五台县| 图木舒克市| 牡丹江市| 怀远县| 中阳县| 都安| 上犹县| 巴青县| 西乌珠穆沁旗| 常熟市| 兖州市| 鹤壁市| 宜君县| 塘沽区| 温泉县| 区。| 九龙县| 康乐县| 黄冈市| 兴国县| 宝清县| 北京市| 哈巴河县| 昌吉市| 天峨县| 涟水县| 牟定县| 诸暨市| 西乌| 霞浦县| 祁连县| 诏安县| 奉节县| 阿城市| 庆云县| 北流市| 九龙坡区| 辽宁省| 故城县| 牡丹江市|