dart - 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"),
),
);
}
}
解决方案
您正在尝试使用 print() 函数在控制台中打印一个大字符串。这是不可能的,颤动对在控制台中打印大值有其限制
你可以试试
debugPrint()
功能,但这也不能保证您的整个字符串(文件)是否会在控制台中打印。我建议您将其打印在一些 Text 小部件上以查看它。我希望这有帮助
推荐阅读
- java - 为类创建别名
- jquery - 表转 JSON +rowspan 转海量
- scala - 使用数据帧的 Spark 会话化
- angular - 使用 npm 安装 Angular-cli 时出错
- c# - WSDL 数据类型“xxxx:AuthorizationFilter”不存在
- python - 字典 | 班级 | 来自 YAML 的命名元组
- android - IllegalArgumentException:AdConsent 库
- c# - 如何正确调用 Jira Rest API
- react-native - 在 FLATLIST 中绑定列表项 onpress ( React Native )
- javascript - my = f.input :title 中的标题是什么?