编码格式不一样,流里存放的是二进制数据(byte[])
向流中写入数据一般用getBytes
当你取出来时,要转换成你原来的编码方式
所以如果你取出流中的数据后,要将二进制(byte[])还原成原始数据
原来的数据是什么编码,你就用什么来解码.然后就可以使用了

解决方案 »

  1.   

    我个人理解:
    英文书是这样写的:
      stdin与stdout是stream类
      Stream类主要用于非char类的数据I/O和系统级的I/O
      Reader类用于char类的IO
    java中char是2 Byte的, String 也是char类。说白了,就是unicode 的。
     Stream与Reader可相互转化。
    不要看think in java ,你初学看不明的。   
    但中文书就看不到这种说法了,其实很简单的东西中文把它复杂化了。
    我根据外国人的书写程序时,处理文本类用Reader,  否则用Stream 。
    我才自学了一个月左右,既没书也没老师,  都是看网上e书的,不一定正确,可参考。
      

  2.   

    http://www.cnblogs.com/sunsonbaby/archive/2004/08/28/37285.aspx