我如何才能在 flutter 中只读取一个文件内容的间隔?

How I can read only a interval of a file content in flutter?

我正在处理一个文件,以便在 flutter 中将信息存储在应用程序中。出于示例目的考虑一个文件 .txt,其中包含以下项目作为字符串:

[ value 1, value 2, value 3, value 4, ... value 500, ]

我的应用程序在读取时应该非常快,我正在寻找一种方法来只读取此文件的某个范围,例如从第 0 项到第 20 项。你有办法做到这一点 without 将文件的整个值放入 var 中?我想在读到极限后立即停止阅读。 目前我用 path provider:

这样做
Future<String> load() async {
    final Directory directory = await getApplicationDocumentsDirectory();
    final File file = File('${directory.path}/names.txt');

    return await file.readAsString();
  }

如果您只想读取文件的一部分,您需要 random access, and thus you need to use File.open/File.openSync to obtain a RandomAccessFile:

var file = File('path/to/file');
var randomAccessFile = file.openSync();
try {
  var bytes = randomAccessFile.readSync(20); // Read the first 20 bytes.
  ...
} finally {
  randomAccessFile.closeSync();
}

或者,您可以使用 File.openRead 创建一个 Stream 来读取指定文件的一部分。