我有一个名为final.csv的文件,它位于flutter项目的assets文件夹中。
assets:
- assets/final.csv
当运行Chrome浏览器的代码,这完美的工作,所以我知道文件是可访问的,而不是空的,因为数据被正确解析.但当我运行这个与Android Studio的Android模拟器,它返回我的错误无法解析文件.我已经尝试了一百万零一个想法,但我不能得到它太工作.
如果我上传文件到服务器,并更改代码从URL拉文件,它的工作完美,但我不希望它太拉数据每次加载页面。
任何明显我遗漏的东西。
Future<List<Map<String, dynamic>>> fetchMarkers() async {
try {
// Load the local file from the assets folder
final csvFullString = await rootBundle.loadString('final.csv');
// Parse the CSV content
final csvFullList = const CsvToListConverter().convert(csvFullString);
final dataRows = csvFullList.sublist(1); // Remove the header row
final markers = dataRows
.map((row) => {
'name': row[0],
'area': row[1],
'road': row[2],
'easting': row[3],
'northing': row[4]
})
.toList();
print('Parsing complete');
return markers;
} catch (e) {
throw Exception('Failed to load markers: $e');
}
}
短暂性脑缺血发作
1条答案
按热度按时间rkttyhzu1#
你能试着把
final.csv
的加载方式改为:我没有尝试解析
csv
文件(懒得处理),但在我的例子中,它肯定是将csv文件的内容加载到对象csvFullString
中。你的问题似乎是loadString
,因为你试图加载一个二进制文件(.csv
)而不是一个String。希望这能回答问题。