在dart中逐行读取文件

时间:2014-02-16 15:44:06

标签: dart dart-io

我正在尝试使用Dart语言处理大型文本文件。这些文件的大小超过100 MB。

我尝试了readAsLines库的readAsLinesSyncdart:io方法。每次我的内存耗尽:Exhausted heap space

有没有办法像其他语言一样逐行或逐字节地读取文件?

2 个答案:

答案 0 :(得分:8)

这应该以块的形式读取文件:

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'));
}

目前还没有太多关于此的文档。也许提出一个要求更多文档的bug。

答案 1 :(得分:0)

在最新版本的dart中,UTF8.decoder现在是utf8.decoder:

/**
 * This code should be added to functions.php of your theme
 **/

add_filter('woocommerce_default_catalog_orderby', 'custom_default_catalog_orderby');

function custom_default_catalog_orderby() {
     return 'date'; // Can also use title and price
}