首页 > 解决方案 > 写入输出流

问题描述

我正在尝试使用 OutputStream 与命令行应用程序进行交互。运行应用程序的命令:

Process pr = rt.exec(
    executor.getTool()
            + execProcess.getToolSuffixes().get(execProcess.getSystem().getName())
            + " "
            + executor.nextStep());

该应用程序启动并等待一些输入,所以我试图写入进程的输出(传递其他参数)。

PrintStream out = new PrintStream(pr.getOutputStream());
BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));

while (in.read() != -1) {
    String s = in.readLine();
    logger.debug("input read:{}", s);
    if (s.contains("delimiter:")) {
        String write =executor.nextStep();
        logger.debug(write);
        out.println(write);
        out.flush();
    }
}
out.close();
returnCode = pr.waitFor();

条件通过了,if并且从日志中看来它有效。该应用程序按预期生成文件,它应该包含传递的参数,但它是空的(它在手动运行时有效)

标签: javaoutputstream

解决方案


推荐阅读