gpt4 book ai didi

dart - 在Dart中,如何在浏览器中逐行读取文件?

转载 作者:行者123 更新时间:2023-12-03 03:13:29 26 4
gpt4 key购买 nike

在服务器端,有用于文件操作的readline,这对于大文件处理非常方便。但是,这不适用于浏览器端,如何在浏览器端逐行读取大文件?或者我怎么能上传一个超大文件,它不能容纳在RAM中?

最佳答案

有一个LineSplitter类,似乎是为了https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart-convert.LineSplitter而设计的

你可以像这样使用它

import 'dart:convert';
import 'dart:io';

void main() {
new HttpClient().getUrl(
Uri.parse('http://www.gutenberg.org/files/45776/45776-h/45776-h.htm'))
.then((r) => r.close())
.then((HttpClientResponse response) => handleResponse(response));
}

void handleResponse(HttpClientResponse response) {
LineSplitter ls = new LineSplitter();
ls.bind(UTF8.decoder.bind(response)).listen((e)=> print('=====${e}====='));
}

使用@lrn建议的变换的替代解决方案

void main() {
new HttpClient().getUrl(
Uri.parse('http://www.gutenberg.org/files/45776/45776-h/45776-h.htm'))
.then((r) => r.close())
.then((HttpClientResponse response) {
response.transform(UTF8.decoder)
.transform(new LineSplitter())
.listen((e) => print('====${e}===='));
});
}

在浏览器中,我缺少将 ProgressEvent转换为 Stream<String>的东西。
也许其他人知道更多。
这似乎仅受WebSocket支持,而不受HttpRequest支持。

关于dart - 在Dart中,如何在浏览器中逐行读取文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23893633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com