public static void main(String[] args) throws IOException {
DataOutputStream dos = new DataOutputStream(new FileOutputStream("d:\\dd.txt"));
dos.writeFloat(0.12345f);
dos.close();
}代码执行完后,dd.txt文件里面却是乱码?
为什么?请问如何解决?
谢谢!

解决方案 »

  1.   

    如果想写入dd.txt文件的数据可读,需要用到PrintWriter类PrintWriter dos = new PrintWriter(new FileOutputStream("d:\\dd.txt"));
    dos.print(0.12345f);
    dos.close();
      

  2.   

    不过,虽然打开dd.txt文件后,里面全是乱码,但是这些乱码是可以用DataInputStream类读出来
    DataOutputStream dos = new DataOutputStream(new FileOutputStream("d:\\dd.txt"));
    dos.writeFloat(0.12345f);
    dos.close();FileInputStream inputStream = new FileInputStream("d:\\dd.txt");
    DataInputStream dataInputStream = new DataInputStream(inputStream);
    float k = dataInputStream.readFloat();
    System.out.println(k);
      

  3.   

    0.12345f 这个浮点数占4个字节,表示为:3d fc d3 5b,写入到文件里的是这几个字节。不是可显示字符,一般的编辑工具肯定认不出来,需要用DataInputStream 的readFloat()方法读出。import java.io.*;
    public class Hanzi1
    {
    public static void main(String[] args)
    {
    try
    {
    DataOutputStream dos = new DataOutputStream(new FileOutputStream("d:\\dd.txt"));
    dos.writeFloat(0.12345f);
    dos.close();
    DataInputStream dis=new DataInputStream(new  FileInputStream("d:\\dd.txt"));
    float f=dis.readFloat();
    System.out.println(" f is  "+f);
    dis.close();
    }
            catch (IOException e) 
    {
    // TODO: handle exception
    System.out.println(e);
    }
    }
    }
      

  4.   

    通过DataOutputStream,文件中浮点型、整型、boolean型会出现乱码,因为存储的是二进制文件编码,则用记事本打开看到的是相应的assca码值
     如:dos.writeInt(65);则会显示A
     
     
      

  5.   

    insert into test(name)values('了');
    Error:Incorrect string value:'\xc1\xcb' for column 'name' at row 1;mysql的设置:
    db:utf8 client:utf8 conn:utf8 server:utf8 配置文件里也是utf8谢大婶了