使用DataOutputStream时出现奇怪的输出

时间:2011-09-08 01:19:29

标签: java file-io dataoutputstream

我正在使用Java IO的DataOutputStream来写入文件,但是当我执行程序时,我没有得到正确的输出,相反,我得到了奇怪的字符。 - 尽管我注意到只使用writeUTF(String str)方法编写字符串,但即使使用writeBytes(String s)也会产生一个奇怪的字符,它应该是空格字符 - 写入文件的代码部分如下,任何想法都在可能的原因,也许与编码有关?提前谢谢。

FileOutputStream fs= new FileOutputStream("Path/to/my/file");

DataOutputStream ds = new DataOutputStream(fs);


ds.writeBoolean(false);
ds.writeChar('A');
ds.writeInt(42);
ds.writeBytes("test1");
ds.writeUTF("test2");


fs.close();

2 个答案:

答案 0 :(得分:2)

DataOutputStream类定义为编写字节流,而不是字符流。这个字节流的目的是有效和便携地存储,无论人类是否可以读取它。

如果您需要人类可读的文本文件,请使用XML编写器。

顺便说一下,你得到的输出是正确的,而你的理解是错误的。您可能只需要阅读并理解课程附带的documentation

答案 1 :(得分:1)

数据流用于二进制数据DataOutputStream以二进制格式写入整数,即它将整数分成4个字节并写入