gpt4 book ai didi

java - 打开两个终端进行读写

转载 作者:行者123 更新时间:2023-12-02 12:03:19 25 4
gpt4 key购买 nike

如果我在操作系统 native 终端(cmd.exe 或 xterm)中启动 java 程序,是否可以:

  1. 保留当前读写终端为 System.inSystem.out
  2. 打开另一个终端进行读/写 NewTerm.inNewTerm.out

就目前情况而言,我似乎所能做的就是打开第二个终端。我无法写入它(我尝试过 BufferedWriter ),它显示命令的唯一方法是这些命令是否在其打开时发出(即 Runtime.getRuntime("xterm ls")ProcessBuilder(command).start() ;其中 commandString[] ) )。

我想保持两个终端打开,以便我可以比较它们的输出。顺序如下:

  • 在第一个终端中运行程序
  • 生成第二个终端
  • 在第一个终端中发出命令
  • 在第二个终端中发出命令
  • 读取第一个终端输出
  • 读取第二个终端输出

这可能吗?

以下是我打开新终端但打开后无法写入的方法:

public class InterFace {
public static void main(String[] args) {
try {
Process p = Runtime.getRuntime().exec("xterm");
BufferedWriter w = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));

w.write("ls");
w.flush();
w.close();

BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));

String s;
while ((s = r.readLine()) != null) {
System.out.println(s);
}
}
catch (IOException io) {
io.printStackTrace();
}
}
}

最佳答案

命令后需要行分隔符。

w.write("ls" + System.lineSeparator());

关于java - 打开两个终端进行读写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47082938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com