首页 > 解决方案 > Flutter - 如何从资产中读取 500MB 的文本文件(无 JSON)

问题描述

我的资产文件夹中有一个 500 MB 的文本文件。我想读取这个文件的内容(如果可能的话,逐行)。
当我使用“loadString()”时,我的文件只打印了几行(4000 行中的 5 行)。如何读取文件的全部内容?这是我的代码:

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

class ReadText extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    Future<void> loadAsset() async {
      var myFileContent = 
                      rootBundle.loadString('res/assets/raw/mydata.csv');

      //Printing
      return myFileContent.then(print);
    }

    loadAsset();

    return Scaffold(
      backgroundColor: Colors.orange,
      appBar: AppBar(
        title: Text("Read File"),
      ),
      body: Center(
        child: new Text("Empty page"),
      ),
    );
  }
}

标签: dartflutter

解决方案


您正在尝试使用 print() 函数在控制台中打印一个大字符串。这是不可能的,颤动对在控制台中打印大值有其限制

你可以试试

debugPrint() 

功能,但这也不能保证您的整个字符串(文件)是否会在控制台中打印。我建议您将其打印在一些 Text 小部件上以查看它。我希望这有帮助


推荐阅读