小弟用DataOutputStream 写平台无关的UTF时,发现有时写出的会有些乱七八糟的乱码,
比如:
    读取一个文件,文件里的文本是:
    1 四级核心词汇
    2 大学四级
    3 大学六级
    4 GRE
    5 新概念英语词汇
    6 研究生入学词汇
    7 研究生入学短语
    
    写出去之后就成了:
     1 四级核心词汇 2 大学四级 3 大学六级 4 GRE 5 新概念英语词汇 6 研究生入学词汇 7 研究生入学短语
    而另外有些写出去之后却全是乱码,但是使用DataInputStream
读取进来以后却不会有乱码,这是何解啊?

解决方案 »

  1.   

    还是用PrintWriter这类的字符流吧。
      

  2.   

    答:很简单,你所看到的“乱七八糟的乱码”很重要,是每一个字符串的长度。
    DataOutputStream 写平台无关的UTF时,先写串长,再写串内容。这样对方:DataInputStream 
    读取进来时按长度读每一个字符串。没有这样长度信息,DataInputStream 就无法正确读出串了。