从文本文件中读取直到字符串最大长度

Posted

技术标签:

【中文标题】从文本文件中读取直到字符串最大长度【英文标题】:Reading from text files until String max length 【发布时间】:2021-01-02 20:55:47 【问题描述】:

我是 Dart 编码的新手,所以请多多包涵。我从 Flutter API 中搜索了如何使用 readAsString() 函数读取文件。它表示它将读取文件的全部内容并将其作为字符串返回。但是,是否存在某种只能读取的字符串最大大小?我无法在线找到 Dart 中字符串的最大大小。谢谢。

下面是代码,如果你想看的话:

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

import 'package:path_provider/path_provider.dart';

class Storage 
  Future<String> get localPath async 
    final directory = await getApplicationDocumentsDirectory();
    return directory.path;
  

  Future<File> get localFile async 
    final path = await localPath;
    return File('$path/data.txt');
  

  Future<List<String>> read() async 
    try 
      final file = await localFile;
      String contents = await file.readAsString(); //the important part
      return contents.split(";");
     catch (exception) 
      return null;
    
  

  void write(List data) async 
    final file = await localFile;
    String toWrite = "";
    for (int i = 0; i < data.length; i++) 
      toWrite += data.elementAt(i) + ";";
    
    file.writeAsString(toWrite);
  

【问题讨论】:

使用String contents = await file.readAsString();,你想限制contents 的长度吗?如果是,你想一开始就分开吗? 就像下面的评论一样,我想知道它是否能够使用 readAsString() 读取无限大的字符串。 【参考方案1】:

也许你想要类似的东西:

var myFileStream = File('path/to/file').openRead();
var firstChars = myFileStream.take(1024);

这会将文件的内存部分限制为前 1024 个字符。

(我认为。:)

【讨论】:

感谢您的回答,我的意思是它可以读取的最大文件大小。前任。 readAsString() 函数只返回超过字符串大小之前的前 x 个字符。 不,字符串“直到内存不足”。

以上是关于从文本文件中读取直到字符串最大长度的主要内容,如果未能解决你的问题,请参考以下文章

字符输入流读取文本文件ReaderFileReaderBufferedReader

字符流读写文本文件

是否有可能知道从文件中读取的长文本将在 C 中使用多少个字符?

如何使用 genfromtxt() 从 NumPy 中的文本文件中读取不同长度的列?

从 C# 中的文本文件一次读取 10 行

如何在替换从文本文件中读取的单词的程序中解释不同的单词长度?