解决方案 »

  1.   

    你先看下a.getBytes() 是采用哪个编码集, 可以用: Charset.defaultCharset().name()得到;
    若是GBK或GB2312,那你就得注意下:
    GB2312/GBK 中的所有字符都是用二个字节表示,但有个条件:是在 全角方式下;
    若是在半角方式 下,是采用ASCII编码的,也就是1个字节了;
      

  2.   

    你仔细看下API
    read
    从此输入流中读取下一个数据字节。返回一个 0 到 255 范围内的 int 字节值
    并不是说读一个字节!
      

  3.   

    默认utf-8编码,英文一个字节,中文三个字节,gbk英文一个字节,中文两个字节
    上边说的英文是ascii码,文本读写用Reader和Writer