我试了一下,感觉是jdk编码/解码的bug
如果输入"中中china"则解码没问题,这好像已经与编码解码没有关系了

解决方案 »

  1.   

    不是jdk编码/解码的bug
    我解决了
    汉字的两个字节中有负数
    合并时要&0X00FF 
      

  2.   

    如果要输入中设计到的中文时候建议最好使用FileWriter和FileReader这两个类.如果你非要用DataOutputStream的话,如果是输入中文的时候就不要用这个writeChars(String s) 方法,用这个writeUTF(String str)方法.因为前一个方法不支持写入中文.
      

  3.   

    把dis.read(buf);
    改为readchar吧,或者把DataInputStream 转化成BufferedInputStream,
    然后用readline