写入 Java 进程的输入流
我有一个代码,可以启动一个java进程(即:执行编译的java代码),通过
ProcessBuilder builder = new ProcessBuilder("java", "Sample", "arg1", "arg2");
builder.redirectErrorStream(true);
Process process = builder.start();
通过这个,我基本上可以处理输出和错误
OutputStream stdin = process.getOutputStream(); // <- Eh?
InputStream stdout = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(stdout));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(stdin));
// reader.readLine() blah blah
现在,如何将输入发送到 ?也就是说,如果进程执行的代码有一行等待输入,如:stdin
Scanner scan = new Scanner(System.in);
String val = scan.nextLine();
System.out.println(val);
我试过这个:
writer.write("I'm from the stdin!.");
writer.flush();
虽然什么也没发生。控制台仍在等待输入。
有什么想法吗?
编辑:这个问题已得到答复,如下文所述。我正在编辑以显示错误的代码(顺便说一句,我未能包含该代码。哈哈)。
在零件之前,我有一个writer.write()
String line;
line = reader.readLine();
while (line != null) {
System.out.println(line);
line = reader.readLine();
}