You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中已生成的CSV文件存在但无法加载,求解决方案

问题解决:加载外部存储的CSV文件

你的问题出在错误使用了rootBundle.loadString()方法——这个方法仅用于读取应用打包时内置的assets资源文件,无法读取设备外部存储中生成的文件。要读取外部存储的CSV文件,需直接使用File类的读取方法。

修改后的_loadedCSV()代码如下:

_loadedCSV() async {
  if (await Permission.storage.request().isGranted) {
    String dir = (await getExternalStorageDirectory())!.path;
    String filep = "$dir/csvdatasave.csv";
    print(filep);
    
    // 用File类读取外部存储文件,替换rootBundle
    File file = File(filep);
    if (await file.exists()) { // 先判断文件是否存在,避免报错
      final _rawData = await file.readAsString();
      _loadlistData = const CsvToListConverter().convert(_rawData);
      print("from csv");
      print(_loadlistData);
      print("loaded from csv file ");
    } else {
      print("文件不存在,请先生成CSV");
    }
  } else {
    Map<Permission, PermissionStatus> statuses = await [
      Permission.storage,
    ].request();
  }
}

关键修改点:

  • 替换rootBundle.loadString(filep)为File(filep).readAsString(),直接操作外部存储文件
  • 增加file.exists()判断,提前处理文件不存在的情况,避免抛出异常

内容的提问来源于stack exchange,提问作者Jerome George

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 01:15:02