我正在尝试用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()
.transform(UTF8.decoder)
.transform(new LineSplitter())
.forEach((l) => print('line: $l'));
}
Run Code Online (Sandbox Code Playgroud)
目前还没有太多关于此的文档.也许提交一个要求更多文档的bug.
在最新版本的 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'));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1799 次 |
| 最近记录: |