小编Raj*_*j K的帖子

处理流程流的正确方法

谁能澄清一下以下过程是否是处理进程流的正确方法,没有任何流缓冲区已满和阻塞问题

我正在从 java 程序调用外部程序,我正在使用 ProcessBuilder 来构建流程,并在执行后

Process gpgProcess = processBuilder.start();
Run Code Online (Sandbox Code Playgroud)

我正在使用一种方法来处理该过程

String executionResult = verifyExecution(gpgProcess);
Run Code Online (Sandbox Code Playgroud)

在我的方法中,我试图处理流程

private String verifyExecution(Process gpgProcess) throws IOException, InterruptedException {

        String gpgResult = null;

        BufferedReader stdOut = new BufferedReader(new InputStreamReader(gpgProcess.getInputStream()));
        BufferedReader stdErr = new BufferedReader(new InputStreamReader(gpgProcess.getErrorStream()));

        gpgProcess.waitFor();

        if(stdErr.ready()) {
            gpgResult = "Exit code: " + gpgProcess.exitValue() + "\n" + readStream(stdErr);
        } else if(stdOut.ready()) {
            gpgResult = "Exit code: " + gpgProcess.exitValue() + "\n" + readStream(stdOut);
        } else {
            gpgResult = "Exit code: " + gpgProcess.exitValue();
        } …
Run Code Online (Sandbox Code Playgroud)

java stream processbuilder

2
推荐指数
1
解决办法
3802
查看次数

标签 统计

java ×1

processbuilder ×1

stream ×1