DataOutputStream out2 =
        new DataOutputStream(
          new BufferedOutputStream(
            new FileOutputStream("Data.txt"),"gb2312"));//增加这个试一下
      out2.writeDouble(3.14159);
      out2.writeChars("That was pi\n");
      out2.writeBytes("That was pi\n");
      out2.close();

解决方案 »

  1.   

    不行啊!这些类没有后面带编码参数的Constrctor!
      

  2.   

    那个不是乱码 兄弟 你可以用DataInputStream读取File
    试试 
    绝对可以还原为原来写入的东西
      

  3.   

    文件I/O中分为二进制和文本,在JAVA中OutputStream/InputStream处理二进制,Reader/Writer处理文本,你想显示为你看得懂的字符串,就用Writer/Reader吧。二进制与文本的区别是什么呢?例如:123456789用文本保存会占用9个字节,每个字符占一个字节,分别保存,用二进制保存只占用4个字节,即把该数字作为一个int型保存。由于在JAVA中采用unicode码,有些情况下,一个字符会占用两个字节。另外:在JAVA中还有一个类专门处理随机文件。随机文件定位比较方便。
      

  4.   

    你是按照二进制(BIN)写的文件,确用记事本用文本(ASC)的方式查看,当然是这个问题.
    如果在windows下,请用Ultraedit hex模式或者winhex等工具查看你写的文件.
    如果在unix下,请用od命令查看文件.