作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题中的所有内容都在标题中。
输出中“我的名字”后面有很多乱码。
import java.io.*;
public class DOStry {
public static void main(String[] args) {
String file = "file.txt";
String stra = "my name";
int intb = 1;
double douc = 2.5;
char chad = 'f';
try
{
FileOutputStream fos = new FileOutputStream(file);
DataOutputStream dos = new DataOutputStream(fos);
dos.writeUTF(stra);
//i don't know why it prints gibberish after my name.
dos.writeInt(intb);
dos.writeDouble(douc);
dos.writeChar(chad);
dos.flush();
dos.close();
}
catch (IOException e)
{
System.out.println("IOException : " + e);
}
}
}
我不好,我错过了什么?我只是想学习 DataOutputStream。
最佳答案
DataOutputStream 用于打印二进制文件,而不是文本,您必须将其作为二进制文件读取才能理解它。您可以像阅读文本一样阅读其中的部分内容,但这并不意味着它就是文本。
我建议您执行以下操作。这些都可以作为文本阅读。
FileWriter fw = new FileWriter(file);
PrintWriter pw = new PrintWriter(fw);
pw.println(stra);
pw.println(intb);
pw.println(douc);
pw.println(chad);
dos.close();
简而言之,如果混合二进制和文本,您更有可能感到困惑。
关于java - 为什么这个 DataOutputStream 在我的名字后面打印乱码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17226694/
我是一名优秀的程序员,十分优秀!