我想用RandomAccessFile读取中文文件,但是里面不一定都是中文的,所以按照字节读取,有可能会读取到半个汉字的字节,所以要经过处理,而且读取的时候可能会向下读取,也可能会向上读取,于是就会有三种读出半个汉字的情况:
1、字节数组中最后一个字节是半个汉字         //这个已经解决了
2、字节数组中前面一个字节是半个汉字
3、字节数组中前面一个字节是半个汉字,最后面的一个字节也是半个汉字  我要将其转换成为GB2312的,好像汉字的半个字节都是负数 ,用这中方法可以判断出来是否是汉字的半个!!
所以我只要判断出哪个字节是半个汉字就行了,最好给出代码!
谢啦!!

解决方案 »

  1.   


    答:我不明白你真正想做什么.对于WINDOWS下用记事本创建的中英文混合的纯文本文件,内部都是双字节的,根本不存在你的半个汉字的情况.如:用记事本创建文本文件 test.txt的内容是:啊阿ab
    其按字节打开是:FFFE4A553F9661006200共10个字节.用RandomAccessFile读取该文本文件时,也是10个字节,即:每一个字符(包括a与b)都是两个字节.
    不明白你的真正意图.
      

  2.   

    GB2312 中的汉字编码结构是这样的:高字节范围:B0~F7
    低字节范围:A1~FE
      

  3.   

    给点启示:
    String str = "我";
    byte []b = str.getBytes();
    if(b[1]<0){
    System.out.println("半个汉字");
    }