gpt4 book ai didi

java - 读取输出流的内容

转载 作者:行者123 更新时间:2023-12-02 08:05:21 26 4
gpt4 key购买 nike

我在java中有以下代码,它在命令提示符中调用日期命令:

// prepare command prompt runtime and process
Runtime runtime = null;
Process process = null;

// prepare output stream
OutputStream outputStream = null;

try {
runtime = Runtime.getRuntime(); // instantiate runtime object
process = runtime.exec("date"); // get the current date in command prompt

// read the output of executing date command
outputStream = process.getOutputStream();

// output the date response
System.out.println(outputStream);

process.waitFor(); // wait for the date command to finish
} catch(Exception e) {
e.printStackTrace();
} // end catch

如何读取outputStream值以便能够使用System.output.println()

最佳答案

您不读取输出流,而是写入它以将数据传递给处理。从进程中读取数据使用

BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
br.readLine();

该代码用于进程的字符串输出。当然,如果您的进程以其他方式输出数据,您必须更改 process.getInputStream()

的包装器

更新:我认为我们使用getInputStream来实际读取进程输出在某种程度上令人困惑:)原因是最初的基本类OutputStreamInputStream 的命名是相对于使用它们的代码(您编写的代码)而言的。因此,当您使用OutputStream时,您实际上将其用作您的程序的输出。当您使用 process.getOutputStream 时,您不会获得进程的输出,而是获得通过管道传输到进程输入的程序输出。当您使用 process.getInputStream 时,您将获得程序的输入,该程序从进程的输出中获取通过管道传送的数据。

关于java - 读取输出流的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8265960/

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