【发布时间】:2019-11-25 10:14:04
【问题描述】:
我正在为一个小项目尝试一些 Java 套接字编程。我遇到了从外部进程读取无限 InputStream 的问题。程序进入无限循环。
我怀疑 readLine() 必须在 EOF 之前读取流。
我已经放了一些打印语句,我确信程序到达了 while 循环。
这是我的方法:
public void run() throws IOException {
Process p = Runtime.getRuntime() .exec(exe);
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while((line = in.readLine()) != null){
System.out.println(line);
dout.writeUTF(" " + line + " yes!");
dout.flush();
}
in.close();
dout.close();
s.close();
ss.close();
}
【问题讨论】:
-
你忘了说你的问题是什么。
-
谢谢!补充说程序进入无限循环
-
在第一行开始的进程退出之前,您不会到达 EOF。在那之前,调用
readLine会阻塞 -
你在 Runtime.getRuntime(exec()); 中使用了什么命令?
-
这是一个简单的编译 C 程序,在无限循环中打印一条消息