在Dart中读取多个文件

在Dart中读取多个文件,dart,Dart,我试图读取多个文件,以便从每个文件中提取信息。当我尝试读取第二个文件时,我得到 :未处理的异常: RangeError(索引):无效值:只有有效值为0:1 我有一个名为file的对象,在初始化新文件之前,我尝试将其设置为null 这是产生错误的函数: Future readFile() async { print("What text file would you like to read?(Don't forget the .txt)"); var fileNa

我试图读取多个文件,以便从每个文件中提取信息。当我尝试读取第二个文件时,我得到

:未处理的异常: RangeError(索引):无效值:只有有效值为0:1

我有一个名为file的对象,在初始化新文件之前,我尝试将其设置为null

这是产生错误的函数:

    Future readFile() async {
      print("What text file would you like to read?(Don't forget the .txt)");
      var fileName = stdin.readLineSync();
      file=null;
      file = File(fileName);
    }

这就是我调用的方法

  addExamGrade()async{
  await readFile();
  await file.readAsLines().then((lines) =>
      lines.forEach((l) => addIndividualEx(l))//print(l)
  );
}
我在这里阅读了文件中的信息:

addIndividualEx(String line)async{
  var split;
  var grade;
  String fname;
  String lname;
  double ExGrade;
  if (line != null) {
    split=line.split(',');
    grade=split[1].split(' ');
    lname=split[0];
    fname=grade[1];
    ExGrade=double.parse(grade[2]);
    if(!students.containsKey(fname)){//checks first name)
      students[fname]=Student(fname, lname);
    }
    students[fname].addExamGrade(ExGrade);
  }
}
我想阅读多个文件。 但我得到的却是错误:

未处理的异常:
RangeError(索引):无效值:只有有效值为0:1
0列表。[](dart:core patch/Growtable_阵列。dart:147:60)
1个附加的DIvidualHw(file:///C:/Users/Andrea%20Fernanda%20Torr/IdeaProjects/TestDart/bin/main.dart:117:16)
2.增加家庭作业成绩。。(file:///C:/Users/Andrea%20Fernanda%20Torr/IdeaProjects/TestDart/bin/main.dart:70:28)
3 List.forEach(dart:core patch/growtable_array.dart:283:8)
4.增加家庭作业成绩。(file:///C:/Users/Andrea%20Fernanda%20Torr/IdeaProjects/TestDart/bin/main.dart:70:13)
5_RootZone.runUnary(dart:async/zone.dart:1379:54)
6\u FutureListener.handleValue(dart:async/future\u impl.dart:137:18)
7 Future.\u PropagateTListeners.handleValueCallback(dart:async/Future\u impl.dart:678:45)
8未来传播到侦听器(dart:async/Future\u impl.dart:707:32)
9 Future.\u completeWithValue(dart:async/Future\u impl.dart:522:5)
10.未来。完成。(dart:async/future_impl.dart:552:7)
11 microtaskLoop(dart:async/schedule_microtask.dart:41:21)
12 _startMicrotaskLoop(dart:async/schedule_microtask.dart:50:5)
13 _runPendingImmediateCallback(dart:隔离补丁/隔离补丁。dart:116:13)
14 RawReceivePortImpl.handleMessage(dart:隔离补丁/隔离补丁。dart:173:5)
尝试从这里开始:


您正在创建一个
async
函数,但您没有等待任何东西

你能做一个小的完整的例子,我们可以运行,并说明问题所在吗?你没有在
readFile
中读取文件。您正在将某些内容分配给
文件
-我不确定这是字段还是全局字段。对
null
的中间赋值没有完成任何操作。此函数中的任何内容都不会抛出您看到的错误。很可能您遇到了重新分配
文件
的问题,然后又试图像使用旧值一样使用它。也许您需要一个
列表
,并在此函数中使用
。添加
,而不是重新分配?从堆栈跟踪来看,错误似乎发生在
addIndividualHW
函数中。你也能把它贴出来吗?