JAVA DataOutputStream

来源:百度知道 编辑:UC知道 时间:2024/06/15 09:58:24
DataOutputStream dos = null;
dos = new DataOutputStream(new FileOutputStream("1.txt"));
dos.writeInt(97);
dos.close();

为什么文件里面的内容不是97
而是 3个空格加一个A呢?
不好意思 我写错了
显示的是 3个空格加一个a

我想问的是 DataOutputStream 的writeInt() 方法不是写一个Int类型的数吗?

DataOutputStream是写数据的(binary文件),不是写文本的。写文本用FileWriter类。另一种方便的方法是用PrintStream类
PrintStream dos = null;
dos = new PrintStream(new FileOutputStream("1.txt"));
dos.print(97);
dos.close();

"我想问的是 DataOutputStream 的writeInt() 方法不是写一个Int类型的数吗?"
一点没错,是写一个整数进去。但是是按二进制的方式写进去的,不是给你看的。你如果真想看,用ultraedit打开,它存了4个字节进去,值为0x61(也就是10进制的97,凑巧也是字母a的ascii值)

正确的方法是:你需要用DataInputStream来读。记事本是用来读文本文件的,不是二进制文件的

把原来的1.txt删除 再看看结果

需要内容是97的话, 你可以直接写dos.write("97");

97 = a ASCII码