我正在尝试以 Dart 语言处理大型文本文件。这些文件的大小超过 100 MB。
我尝试了图书馆readAsLines
的readAsLinesSync
方法。dart:io
每次我用完内存时:Exhausted heap space
。
有没有办法像其他语言一样逐行或逐字节读取文件
这应该以块的形式读取文件:
import 'dart:async';
import 'dart:io';
import 'dart:convert';
main() {
var path = ...;
new File(path)
.openRead()
.map(utf8.decode)
.transform(new LineSplitter())
.forEach((l) => print('line: $l'));
}
目前还没有太多关于此的文档。也许提交一个错误,要求更多文档。
在最新版本的 dart 中,UTF8.decoder 现在是 utf8.decoder:
import 'dart:async';
import 'dart:io';
import 'dart:convert';
main() {
var path = ...;
new File(path)
.openRead()
.transform(utf8.decoder)
.transform(new LineSplitter())
.forEach((l) => print('line: $l'));
}