在 Dart 中从进程流式传输标准输出的最佳方法是什么?

Set*_*add 8 dart dart-io

我想运行一个进程,并将进程的标准输出流式传输到控制台。执行此操作的最佳(最有效、最容易理解、代码行数最少)方法是什么?

例如:

var process = await Process.start(exec, args);
Run Code Online (Sandbox Code Playgroud)

我想尽快看到任何标准输出内容。

谢谢!

Gün*_*uer 10

import 'dart:io';
void main() async {
   var process = await Process.start(exec, args);
   process.stdout.pipe(stdout);
}
Run Code Online (Sandbox Code Playgroud)

或使用then

import 'dart:io';
void main() {
   Process.start(exec, args).then(
      (process) => process.stdout.pipe(stdout)
   );
}
Run Code Online (Sandbox Code Playgroud)

https://api.dart.dev/dart-async/Stream/pipe.html


Set*_*add 4

这是一种方法:

var process = await Process.start(exec, args);
stdout.addStream(process.stdout);
Run Code Online (Sandbox Code Playgroud)

请注意,我将process.stdout流添加到普通stdout流中,该流来自dart:io.