dart - 从Dart Console读取多个输入

标签 dart dart-io

我想从Dart服务器应用程序的控制台中读取不同的数据,例如:

姓:用户输入和输入
姓氏:用户输入和输入
年龄:用户输入和输入

以下代码有效,但仅适用于1个输入项:

var stream = new StringInputStream(stdin);
stream.onData = () {
    voornaam = stream.readLine();
};

但是我无法将其用于多个项目。
在Dart中有简单的方法可以做到这一点吗?

谢谢!

最佳答案

由于您使用的是StringInputStream而不是标准的InputStream,并且因为您希望读取文本。除非有特殊原因,否则我建议您在onLine上使用onData处理程序。基本上,数据上的内容将尝试“流化”信息,因为它不会立即在新行上被调用。尝试执行以下操作(注意,代码不完整,缺少正确的错误处理等)

#import('dart:io');

main() {
  var stream = new StringInputStream(stdin);
  stream.onLine = () {
    var str = stream.readLine().trim();
    print(str.toUpperCase());
    if(str == 'EXIT') exit(0);
  };
}

需要指出的另一点是,如果您正在进行数据流传输并使用onData处理程序,则建议您再使用read方法,而不是readLine方法来检索您的内容,这也是由于onData的本质等待完整的文本行被调用。

关于dart - 从Dart Console读取多个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12636778/

相关文章:

ubuntu - 监控并重启服务器上的 Dart 进程

flutter - 在 List Tile Flutter 中的现有尾随旁边添加一个可点击的图标

flutter - `State<T extends StatefulWidget>`有什么用

dart - 使用 Dart,如何使用 Future 正确返回 HttpResponse

file - 如果我知道根目录和相对路径,如何获取文件?

dart - 获取启动脚本的目录路径

android-studio - Android Studio 在首选项中添加 flutter sdk 路径

svg - dart2js:未捕获类型错误:对象 #<SVGAnimatedString> 没有方法 'split'

Flutter - 使用 .popUntil 传回数据

dart - Dart WebSocket是否不触发onOpen或onMessage事件?