<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Blogger Scott

    CharsetDecoder.decode()與Charset.decode()

        這是一個(gè)在處理大文本文件字符編碼轉(zhuǎn)換時(shí)碰到的問題,即使用CharsetDecoder.decode()方法解碼一個(gè)MappedByteBuffer對(duì)象時(shí),如果這個(gè)MBB對(duì)象的長(zhǎng)度設(shè)置的不好,可能會(huì)出現(xiàn)“java.nio.charset.MalformedInputException:Malformed input length is 2.”的錯(cuò)誤。但是如果直接使用Charset.decode()方法,則不會(huì)出現(xiàn)這樣的錯(cuò)誤。兩端代碼片段如下:

    1、使用CharsetDecoder.decode()方法:

     

     1.
     2   File infile = new File(inFilename);
     3   RandomAccessFile raf = new RandomAccessFile(infile, "r");
     4   MappedByteBuffer mbb = raf.getChannel().map(FileChannel.MapMode.READ_ONLY,0,6000);
     5   Charset inCharset = Charset.forName("GBK");
     6   Charset outCharset = Charset.forName("UTF-8");
     7   
     8   CharsetDecoder inDecoder = inCharset.newDecoder();
     9   CharsetEncoder outEncoder = outCharset.newEncoder();
    10
    11   CharBuffer cb = inDecoder.decode(mbb);
    12
    13   ByteBuffer outbb = outEncoder.encode(cb);
    14
    15   CharSequence str = new String(outbb.array());
    16   System.out.println("str is :"+str);
    17.
    18
    19


    2、直接使用Charset.decode()方法:

    .
       File infile 
    = new File(inFilename);
       RandomAccessFile raf 
    = new RandomAccessFile(infile, "r");
       MappedByteBuffer mbb 
    = raf.getChannel().map(FileChannel.MapMode.READ_ONLY,0,6000);
       Charset inCharset 
    = Charset.forName("GBK");
       Charset outCharset 
    = Charset.forName("UTF-8");
       
       
    //CharsetDecoder inDecoder = inCharset.newDecoder();
       
    //CharsetEncoder outEncoder = outCharset.newEncoder();

       CharBuffer cb 
    = inCharset.decode(mbb);

       ByteBuffer outbb 
    = outCharset.encode(cb);

       CharSequence str 
    = new String(outbb.array());
       System.out.println(
    "str is :"+str);
    .



     

    posted on 2009-06-04 23:15 江天部落格 閱讀(5024) 評(píng)論(0)  編輯  收藏 所屬分類: AndroidJava

    主站蜘蛛池模板: 亚洲人AV在线无码影院观看| 四虎成人精品国产永久免费无码| 久久综合AV免费观看| 国产天堂亚洲国产碰碰| 国产亚洲综合一区柠檬导航| 4455永久在线观免费看| 亚洲av成本人无码网站| 亚洲乱码无码永久不卡在线 | 亚洲AV日韩AV永久无码免下载| 2020久久精品国产免费| 搜日本一区二区三区免费高清视频 | 两个人www免费高清视频| 亚洲一欧洲中文字幕在线| 亚洲中文字幕视频国产| 亚洲免费视频网址| 2022国内精品免费福利视频| 亚洲成A人片在线播放器| 亚洲精品午夜无码专区| 日韩视频免费一区二区三区| 亚洲国产精品一区二区三区久久 | 国产无人区码卡二卡三卡免费 | 青青操视频在线免费观看| 亚洲欧美熟妇综合久久久久| 亚洲第一中文字幕| 亚洲国产精品自在拍在线播放 | 亚洲男人天堂影院| 国产无人区码卡二卡三卡免费 | 亚洲91精品麻豆国产系列在线| 国产亚洲人成网站在线观看| 成人免费在线视频| 2021在线永久免费视频| 国产成人精品免费大全| 看成年女人免费午夜视频| 亚洲天堂男人影院| 亚洲精品电影天堂网| 久久精品7亚洲午夜a| 亚洲一区二区三区乱码A| 日韩午夜免费视频| 无人在线观看完整免费版视频 | 免费观看的av毛片的网站| 国产成人精品免费视频动漫|