我有一个文本文件(里面有内容),我想向它附加文本。这是我的代码:
File outputFile=new File('hello.out');
outputFile.createSync();
List<String> readLines=files[i].readAsLinesSync(Encoding.UTF_8);
for(int j=0;j<readLines.length;j++)
{
outputFile.writeAsStringSync(readLines[j], FileMode.APPEND); }
Run Code Online (Sandbox Code Playgroud)
出于某种原因,Dart 在“FileMode.APPEND”下放置了一条黄线,并表示这是一个“额外的参数”。但是,此链接http://api.dartlang.org/docs/releases/latest/dart_io/File.html声称它是可选的。
FileMode 是一个可选的命名参数,因此您在调用它时必须指定其名称('mode')。要解决您的问题,请更改以下内容:
outputFile.writeAsStringSync(readLines[j], FileMode.append);
Run Code Online (Sandbox Code Playgroud)
对此:
outputFile.writeAsStringSync(readLines[j], mode: FileMode.append);
Run Code Online (Sandbox Code Playgroud)
这段代码确实是您所需要的:
import 'dart:io';
main() {
new File('test.txt').writeAsStringSync('append some more content', mode: FileMode.APPEND);
}
Run Code Online (Sandbox Code Playgroud)
请注意,文件模式是一个命名参数,因此您需要将其指定为mode:
.
一如既往,使用异步版本,除非无关紧要(cli 工具、启动期间的一次性初始化等)