应为你使用的是writeDouble在你写文件之前他会把你的double转化为用long来表示的2进制数据(10101010110),所以你看到的就是乱码了。读的时候就要用readDouble了.如果想不是乱码就得先转成字符然后再掉用相应方法来存储。

解决方案 »

  1.   


    writeDouble 是把(i*1.414)的二进制数据写到文件中,如果用记事本打开这个文件的话,记事本就把他们组成unicode字符输出,所以就是乱码了,试试下面的
    //////////////////////////////////RandomAccessFile rf=new RandomAccessFile("d:/websrc/line.txt","rw"); 
    for(int i=0;i<10;i++){                                               
     //rf.writeDouble(i*1.414);                                          
     rf.writeChars(i*1.414+"");                                          
    System.out.println(i*1.414);                                         
    }                                                                    
    rf.close();