本帖最后由 fskjb01 于 2009-10-02 09:43:10 编辑

解决方案 »

  1.   

    楼主
    有用.text 做扩展名的吗
    呵呵,除非linux应该是.txt吧
      

  2.   

    算我写错了-。=,不过就算是txt也一样,结果还是乱码。
      

  3.   

    void writeBoolean(boolean v) 
              将一个 boolean 值以 1-byte 值形式写入基础输出流。 
     void writeByte(int v) 
              将一个 byte 值以 1-byte 值形式写出到基础输出流中。 
     void writeBytes(String s) 
              将字符串按字节顺序写出到基础输出流中。 
     void writeChar(int v) 
              将一个 char 值以 2-byte 值形式写入基础输出流中,先写入高字节。 
     void writeChars(String s) 
              将字符串按字符顺序写入基础输出流。 
     void writeDouble(double v) 
              使用 Double 类中的 doubleToLongBits 方法将 double 参数转换为一个 long 值,然后将该 long 值以 8-byte 值形式写入基础输出流中,先写入高字节。 
     void writeFloat(float v) 
              使用 Float 类中的 floatToIntBits 方法将 float 参数转换为一个 int 值,然后将该 int 值以 4-byte 值形式写入基础输出流中,先写入高字节。 
     void writeInt(int v) 
              将一个 int 值以 4-byte 值形式写入基础输出流中,先写入高字节。 
     void writeLong(long v) 
              将一个 long 值以 8-byte 值形式写入基础输出流中,先写入高字节。 
     void writeShort(int v) 
              将一个 short 值以 2-byte 值形式写入基础输出流中,先写入高字节。 
     void writeUTF(String str) 
              以与机器无关方式使用 UTF-8 修改版编码将一个字符串写入基础输出流。 看看这些资料你应该能明白,DataOutputStream是一种格式化的数据输出方式而并非都是字符流 
    如果写到文件中他的数据格式 就和在内存中一样 这样他读出来是会很方便但文本打开的是字符编码的 你想想 int long 的数据肯定不是字符编码的 那肯定是乱码了UTFString 可以正确显示就说明 UTF-8的字符是可以正常显示 编码是对的用 16进制编辑器打开(UtralEdit)
    你就可以看到 true 写进去的值是 01 
    a写进去是 61 40
      

  4.   

    直接用输入输出流,java都封装好 了
      

  5.   

    读写字符流你可以看看
    FileReader  BufferedReader
    FileWriter  BufferedWriter
    将数转换为字符串 然后写入  读出来时读字符串再转换成数用DataOutputStream 输出的数据并不是为了用记事本打开看的而是为了储存数据的 一般来保存为
    .dat文件区别开文本本件