java - 使用 DataOutputStream 时出现奇怪的输出

标签 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();

最佳答案

DataOutputStream类被定义为写入字节流,而不是字符流。这种字节流的目的是高效且可移植地存储,无论人类是否可以读取它。

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

顺便说一句,你得到的输出正确的,而是你的理解是错误的。您可能只需要阅读并理解 documentation类(class)附带的内容。

关于java - 使用 DataOutputStream 时出现奇怪的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7342162/

相关文章:

c - 这是创建 C 函数的正确方法,没有返回语句,打开、写入、关闭文件吗?

Python 命令行 'file input stream'

Java- FileWriter/BufferedWriter - 附加到文本文件的末尾?

java - Android:通过 TCP 套接字流式传输音频

java - 如何 append 到 Java 中的 DataOutputStream?

java - JAR 到 EXE 转换器?

java - 使用 Fragment 后退按钮 android

java - 将 java vector 结果写入文件

java - 使用 Scribe 在 Android 中无法工作的情况下向 LinkedIn 发送消息

java - Java 是按值传递还是按引用传递还是两者兼而有之?