1

我正在使用 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();
4

2 回答 2

2

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

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

顺便说一句,您得到的输出正确的,而是您的理解是错误的。您可能只需要阅读和理解课程附带的文档。

于 2011-09-08T01:23:33.373 回答
1

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

于 2011-09-08T01:28:17.560 回答