我正在使用 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();
最佳答案
DataOutputStream
类被定义为写入字节流,而不是字符流。这种字节流的目的是高效且可移植地存储,无论人类是否可以读取它。
如果您想要人类可读的文本文件,请使用 XML 编写器。
顺便说一句,你得到的输出是正确的,而是你的理解是错误的。您可能只需要阅读并理解 documentation类(class)附带的内容。
关于java - 使用 DataOutputStream 时出现奇怪的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7342162/