gpt4 book ai didi

process - Dart将长标准输出数据拆分为两个ProcessResult事件

转载 作者:行者123 更新时间:2023-12-03 04:30:38 24 4
gpt4 key购买 nike

当侦听来自shell进程的长字符串输出时,我分两块接收数据。如何获得全文?
这是有问题的代码:

int i = 0;
Process.start('perl', ['print_text.pl']).then((Process p) {
p.stdout.transform(UTF8.decoder).listen((data) => print("${i++} ${data}"));
p.stdin.writeln('print');
});
运行此代码的结果是:

0 text.....

1 text.....


我已将此问题报告为bug here。您可以运行报告附带的示例应用程序以查看问题。

最佳答案

尝试使用UTF8.decodeStream()

import 'dart:io';
import 'dart:convert' show UTF8;

main() {
Process.start('ls', ['-la'])
.then((p) => UTF8.decodeStream(p.stdout))
.then((s) => print('Output:\n$s'));
}

关于process - Dart将长标准输出数据拆分为两个ProcessResult事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28544535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com