我想从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/