我如何仅读取扑朔迷离的文件内容的间隔?

发布于 2025-01-21 06:49:40 字数 520 浏览 0 评论 0原文

我正在操纵文件以将信息存储在flutter中的应用中。例如,目的考虑一个带有以下项目为字符串的文件.txt:

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

在此读取中我的应用程序应该非常快,我正在寻找一种仅读取此文件范围的方法,例如从项目0到项目20。您是否可以在不将文件的全部值投入var的情况下做到这一点?我想在达到极限后立即停止阅读。 目前,我使用路径提供商这样做:

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

    return await file.readAsString();
  }

i'm manipulating a file to store information in the app in flutter. For example purposes consider a file .txt with the following items as String:

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

my app should be very quick in this reading, I'm looking for a way to read only a range of this file, for example from item 0 to item 20. Would you have a way to do this without throwing the entire value of the file into a var? I'd like to stop reading as soon as I've reached the limit.
currently i do that way with path provider:

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

    return await file.readAsString();
  }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梅窗月明清似水 2025-01-28 06:49:40

如果您只想读取文件的部分,则需要 随机访问a>,因此您需要使用 file> file.file.open < /code>/ file> file.opensync获得

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 创建一个读取指定文件的一部分的

If you want to read only portions of a file, you need 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();
}

Alternatively you could use File.openRead to create a Stream that reads a portion of the specified file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文