gpt4 book ai didi

java - 为什么 PrintWriter 可以输出到 Process,而 BufferedWriter 不能?

转载 作者:太空宇宙 更新时间:2023-11-04 09:06:19 25 4
gpt4 key购买 nike

我有类似于下面的代码,它与 Java 中的 gdb 交互。我使用 gdb 启动进程,然后获取进程的流。我有一个线程不断读取进程的输出(使用 procOut )并将其打印到屏幕上,然后我使用 procIn.println("some_command") 向 gdb 发送命令-

Process proc = new ProcessBuilder("gdb").start;

procOut = new BufferedReader(new InputStreamReader(proc.getInputStream()));
procErr = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
procIn = new PrintWriter(new BufferedWriter(new OutputStreamWriter(proc.getOutputStream())));

但是如果我改变 procIn到 BufferedWriter -

procIn = BufferedWriter(new OutputStreamWriter(proc.getOutputStream()));

并使用procIn.write("some_command") ,它不起作用并且 gdb 没有得到输入。有人知道为什么会这样吗?

最佳答案

您必须对 BufferedWriter 执行 flush() 以确保它退出。

关于java - 为什么 PrintWriter 可以输出到 Process,而 BufferedWriter 不能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10629044/

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