dart - 在 Dart 中读取多个文件
问题描述
我正在尝试读取多个文件,以便从每个文件中提取信息。当我尝试读取第二个文件时,我得到
:Unhandled exception: RangeError (index): Invalid value: 只有有效值是 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);
}
}
我想阅读多个文件。但相反,我得到了错误:
Unhandled exception:
RangeError (index): Invalid value: Only valid value is 0: 1
0 List.[] (dart:core-patch/growable_array.dart:147:60)
1 addIndividualHW (file:///C:/Users/Andrea%20Fernanda%20Torr/IdeaProjects/TestDart/bin/main.dart:117:16)
<asynchronous suspension>
2 addHomeworkGrades.<anonymous closure>.<anonymous closure> (file:///C:/Users/Andrea%20Fernanda%20Torr/IdeaProjects/TestDart/bin/main.dart:70:28)
3 List.forEach (dart:core-patch/growable_array.dart:283:8)
4 addHomeworkGrades.<anonymous closure> (file:///C:/Users/Andrea%20Fernanda%20Torr/IdeaProjects/TestDart/bin/main.dart:70:13)
5 _RootZone.runUnary (dart:async/zone.dart:1379:54)
6 _FutureListener.handleValue (dart:async/future_impl.dart:137:18)
7 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:678:45)
8 Future._propagateToListeners (dart:async/future_impl.dart:707:32)
9 Future._completeWithValue (dart:async/future_impl.dart:522:5)
10 Future._asyncComplete.<anonymous closure> (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:isolate-patch/isolate_patch.dart:116:13)
14 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:173:5)
解决方案
尝试从这里开始:https ://dart.dev/articles/libraries/dart-io
你正在创建一个async
函数,但你什么都没有await
!
推荐阅读
- r - 给定正方形内的一组简单图形坐标,如何识别所有基本多边形?
- android - Android - 如何在运行时动态选择具有不同泛型类型的 AsyncTask?
- excel - 双循环 - 循环通过子文件夹和文件进行合并
- python - 分配列名并将来自多个数据集的结果存储在一个列表中,并将其存储到每个数据集各自的列表/DataFrame 中
- java - 执行时间:迭代与实例
- python - 如何获得具有静态位置的网页元素的深度?
- react-native - 无法加载资金 localhost:8081/index.bundle
- aws-lambda - Lambda 冷启动 - 从 S3 复制文件
- opengl - 如何从常规单元格网格生成 3d 纹理以进行体渲染?
- python - 尝试使用天体坐标匹配目录时如何修复索引错误