java - 如何通过 DataOutputStream 发送算术运算的有效结果

标签 java datainputstream dataoutputstream

我有一个子进程类,它计算两个整数的总和,然后将其放入 DataOutputStream 中:

public class SubProcess {
  public static void main(String[] args) throws IOException {
     DataInputStream in = new DataInputStream(System.in);
     DataOutputStream out = new DataOutputStream(System.out);
     int a = in.readInt();
     out.writeInt(a);
     int b = in.readInt();
     out.writeInt(b);
     int result = a+b;
     out.writeInt(result);
     out.flush();
     in.read();
     out.close();
     in.close();
    }
  } 

当分别写出 a 和 b 的两个值(例如 12 和 47)时,结果是“ei”。

另一方面,主进程不会像 DataInputStream 那样通过 ReadInt() 行读取该结果,并且会引发异常:

        Exception in thread "main" java.io.EOFException
            at java.io.DataInputStream.readInt(Unknown Source)
            at testthread.MainProcess.main(MainProcess.java:21)

最佳答案

看来主进程并没有真正与子进程进行通信。删除两个类中的包并在cmd上运行主进程可以避免异常。

关于java - 如何通过 DataOutputStream 发送算术运算的有效结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58629638/

相关文章:

java - 句子中的反转字符

java - 反编译 jar 文件以将其用作 intellij 中的项目

java - 将dll转换为jar

java - 使用套接字发送/接收压缩数据: how to properly receive the data sent from the client

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

java - 如何摆脱嵌套的 RxJava 流?

java - C 中 DataOutputStream 和 DataInputStream 的等价物

java - 套接字和数据输入流

go - Go 中的 Java DataOutputStream 替代方案

java - 如何 append 到 Java 中的 DataOutputStream?