Dart文件读取到var

时间:2018-04-01 22:19:00

标签: file-io dart

我看了一遍都找不到如何将文件中的输入读入变量。

尝试这样做

在c ++中

ifstream myFile;
myFile.open("filename.txt");
while(!file.eof()){
     myFile >> var1 >> var2 >> etc... 

关注dart文档我已经打开了文件但是我找不到这样的例子。非常感谢帮助以及相关Dart示例的链接,没有任何与web / app相关的内容。只是尝试从文件中读取并使用文件中的内容进行一些计算。 (文件有成绩和im计算平均值)。

示例input.txt文件(d123一些学生的唯一ID,数字是成绩)。

d123 90 89 60 77 65 100
d124 70 79 88 75 57 89

感谢

2 个答案:

答案 0 :(得分:1)

您可以找到以下示例代码段。由于我不确定文件有多大,我使用异步和流API来逐行处理。但是,如果您的输入不是那么大,您可以立即读取整个文件,并执行相同的步骤。以下是一些包含良好文档的链接dart:iodart:convert

import 'dart:io';
import 'dart:convert';
import 'dart:async';

main(List<String> arguments) {
  final file = new File('input/input.txt');
  Stream<List<int>> inputStream = file.openRead();

  inputStream.transform(UTF8.decoder).transform(new LineSplitter()).listen(
          (String line) {
        // calculate average score
        List<String> list = line.split(" ");
        var studentId = list[0];
        var averageScore = list
            .sublist(1)
            .map((value) => int.parse(value))
            .reduce((a, b) => a + b) / (list.length - 1);
        print('${studentId} has average score of ${averageScore}');
      }, onDone: () {
    print('File is succeessfully read.');
  }, onError: (e) {
    print(e.toString());
  });
}

答案 1 :(得分:1)

我只是阅读整个文件,分成行,然后从那里分配变量:

import "dart:io";
main() {
  var file = new File('input/input.txt');
  var lines = file.readAsLinesSync();
  var var1 = lines[0];
  var var2 = lines[1];
  ...
}

如果仅读取部分文件非常重要,那么您可以使用上述解决方案。