相关疑难解决方法(0)

在dart中逐行读取文件

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

我试过readAsLines和库的readAsLinesSync方法dart:io.每次我的内存耗尽:Exhausted heap space.

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

dart dart-io

5
推荐指数
2
解决办法
1799
查看次数

Dart 中的 Stream<List<int>> 和 Stream<int> 有什么区别

我正在尝试围绕 Dart Streams 进行思考。特别是这个命令行实用程序示例cat具有以下代码行:

 Stream<List<int>> stream = new File(path).openRead();

  // Transform the stream using a `StreamTransformer`. The transformers
  // used here convert the data to UTF8 and split string values into
  // individual lines.
  return stream
      .transform(UTF8.decoder)
      .transform(const LineSplitter())
      .listen((line) {
        if (showLineNumbers) {
          stdout.write('${lineNumber++} ');
        }
        stdout.writeln(line);
      }).asFuture().catchError((_) => _handleError(path));
Run Code Online (Sandbox Code Playgroud)
  1. Stream<T>as的声明Stream<List<int>>让我有点困惑。为什么不将其声明为Stream<int>. List<> 类型如何使它与众不同。如果是列表,订阅者事件是否以某种方式缓冲?

  2. 什么类型(如<T>)被传递给第一个转换?它是一个int还是一个List<int>

  3. 传递给每个下一个转换的类型以及决定它们的类型的因素。

  4. 此示例是否在将转换结果传递给下一个转换之前读取整个文件?如果是这样,是否有关于如何流式传输非常大的文件的示例,类似于这个 Node 问题Parsing large logfiles in Node.js - read …

dart dart-async

4
推荐指数
1
解决办法
2219
查看次数

Flutter 将文件作为流读取

我希望用户在文本字段中输入文本。当用户单击 fab 时,文本将作为新行写入文件(附加)。我希望我的应用程序读取文件的内容,并将每一行显示为列表视图中输入文本字段下方的列表图块。当用户输入新文本时,该文本应立即出现在列表视图中。

预览

我能够将文本写入文件。但如何读取文件并显示其内容呢?我应该使用streambuilder吗?下面是我到目前为止所做的代码:

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

import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';

void main() {
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Path Provider',
      theme: new ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: new MyHomePage(title: 'Path Provider', storage: FileStorage(),),
    );
  }
}

class FileStorage {
  Future<String> get _localPath async {
    final directory = await getTemporaryDirectory();

    return directory.path;
  }

  Future<File> get _localFile async {
    final path = await _localPath;
    return File('$path/file.txt'); …
Run Code Online (Sandbox Code Playgroud)

flutter

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

dart ×2

dart-async ×1

dart-io ×1

flutter ×1