【发布时间】:2026-01-11 19:15:01
【问题描述】:
我正在使用 Process.start 创建一个 Process 并且有点卡在 stdin getter 上。理想情况下,我在其他地方设置了一个 StreamController,我想将它的字符串流传递给标准输入。但是与 Process.stdin 交互的复杂示例并不多,所以我不确定除了 writeln 到 stdin 之外如何做任何事情。
所以我有这样的东西,我可以将字符串消息添加到:
StreamController<String> processInput = new StreamController<String>.broadcast();
我想做这样的事情:
Process.start(executable, args, workingDirectory: dir.path, runInShell: true).then((Process process) {
process.stdout
.transform(UTF8.decoder)
.listen((data) {
s.add('[[CONSOLE_OUTPUT]]' + data);
});
process.stdin.addStream(input.stream);
});
我知道addStream() 想要Stream<List<int>>,但我不知道为什么会这样。
【问题讨论】: