我正在使用DataOutputStream尝试以下代码。传递给 DataOutputStream 的 OutputStream 不会打印任何内容。请参阅我下面的代码,并请告诉我此代码中的任何错误。
public class DataStreamsExample {
public static void main(String[] args) throws IOException {
DataInputStream dis = new DataInputStream(System.in);
System.out.println("Enter the First Number");
int i = dis.readInt();
System.out.println("Enter the Second Numebr");
int j= dis.readInt();
int total = i+j;
DataOutputStream dos = new DataOutputStream(System.out);
dos.writeInt(total);
}
}
为什么要使用数据输出流?您不能使用Scanner
来读取输入吗?
不过,调用dos.flush()
将打印出您的结果。
OutputStream 基本上是一个二进制结构。如果要写入文本数据(例如从控制台),则应使用具有某种描述的编写器。若要将 OutputStream 转换为 Writer,请使用 OutputStreamWriter。然后在 Writer 周围创建一个 PrintWriter,您可以使用 PrintWriter.println() 读取一行。您可以替换以下行
DataOutputStream out = new DataOutputStream(out);
进入这个
PrintWriter out = new PrintWriter(new OutputStreamWriter(out));
然后,可以在 OutputStreamWriter 的构造函数中显式指定字符编码。