首页 > 解决方案 > 在 Flutter 中读取 CSV 文件时没有这样的文件

问题描述

我正在尝试以csv颤振方式读取文件,但出现错误

(OS Error: No such file or directory, errno = 2)

csv 文件已在资产部分中声明pubspec.yaml

并且文件的路径是正确的,这是我同步读取文件的尝试:

-- 在课程开始时:

List<String> lines;

-- pubspec.yaml,资产部分:

assets:
    - assets/videos/
    - assets/images/
    - assets/data/data.csv

-- 读取文件的方法

void _readDataFile(String csvFile) {
    File file = File(csvFile);
    lines = file.readAsLinesSync();
  }

-- 调用上述方法 ---

@override
  void initState() {
    super.initState();

    //other stuff ...
    // ...
    // ...

    _readDataFile("assets/data/data.csv");
  }

标签: csvflutterdart

解决方案


您可以使用 rootBundle 来获取资产中的文件:

import 'dart:async' show Future;
import 'package:flutter/services.dart' show rootBundle;

Future<String> loadAsset() async {
  return await rootBundle.loadString('assets/data/data.csv');
}

官方文档链接https://flutter.dev/docs/development/ui/assets-and-images#loading-text-assets
类似问题Flutter - Read text file from assets


推荐阅读