java - 写入输出流
问题描述
我正在尝试使用 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
并且从日志中看来它有效。该应用程序按预期生成文件,它应该包含传递的参数,但它是空的(它在手动运行时有效)
解决方案
推荐阅读
- node.js - Bot-Framework (node.js) 中的 endDialog() 和 endConversion() 有什么区别?
- vba - 使用excel中的宏将数据从数据列表传输到另一个工作表
- c++ - Qt 将字符串转换为以 16 为基数的 int 但保持以 16 为基数的值
- r - 如何将json文件中的特定列解析为R?
- javascript - 在 React/Redux 中进行测试 - 如何保证状态已更新?
- excel - 基于Excel中的类别列填写表格
- sql - 如何在 SQL Server 中将局部变量分配给局部变量
- javascript - 无法理解 Laravel 和反应 js 引导代码
- ios - 如何使用滚动视图使隐藏的按钮菜单出现/消失?
- php - 尝试在 PHP/MySQL 中使用 Prepared 语句时出现多个错误