【问题标题】:How I can read content from file line by line in Flutter web如何在 Flutter web 中逐行读取文件中的内容
【发布时间】:2021-05-13 17:45:38
【问题描述】:

我需要你的帮助,我正在 Flutter WEB 中上传一个带有插件 file_picker 的 TXT 文件,它是有效的,之后我想逐行阅读内容并处理这个数据,但我不知道该怎么做...

我的代码是这样的:

  //load File from txt
  loadFile() async {
    FilePickerResult result = await FilePicker.platform.pickFiles(
      type: FileType.custom,
      allowedExtensions: ['txt'],
    );

    if (result != null) {
      PlatformFile file = result.files.first;

      print(file.name);
      // print(file.bytes);
      print(file.size);
      print(file.extension);
      print(file.path);

      print("contenido");

      setState(() {
        _nameFile = file.name;
        _uploadFile = true;
      });
    } 
  }

有人有什么想法吗?我正在调查,但我没有找到太多关于它的信息,谢谢

PD:该项目仅适用于 FLutter Web

【问题讨论】:

  • file.readStream .map(utf8.decode) .transform(LineSplitter()) .listen((line) => print('line: $line'));
  • 我是这样用的,但是报错:TypeError: Cannot read property 'map' of null
  • 你在调用pickFiles时没有使用withReadStream: true
  • 和?还是null?
  • @pskink 不,现在它工作正常,谢谢!

标签: flutter plugins flutter-web


【解决方案1】:

您可以将file.bytes 转换为String,然后在每一行返回时拆分此String (\n),方法如下:

import 'convert.dart';

String fileContent = utf8.decode(file.bytes);
List<String> lines = fileContent.split('\n');

【讨论】:

    猜你喜欢
    • 2019-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-13
    • 1970-01-01
    • 2020-01-29
    • 2019-04-17
    相关资源
    最近更新 更多