1

此代码尝试打开现有文件,然后通过 openWrite 向其中添加文本。

import 'dart:io';

main() {
  File inFile = new File('/tmp/foo.txt');
  String currentText = inFile.readAsStringSync();
  var writer = inFile.openWrite();
  writer.write(currentText);
  writer.write("\nOne more line");
  writer.close();
  exit(0);
}

完成后文件为空。如果 exit(0) 不存在,它工作正常。应该执行哪些调用以确保在退出之前写入所有写入?

4

1 回答 1

5

由于编写器是异步的,因此您将希望使用编写器的done属性在流的写入和关闭完成时得到通知。例如:

import 'dart:io';

main() {
  File inFile = new File('/tmp/foo.txt');
  String currentText = inFile.readAsStringSync();
  var writer = inFile.openWrite();
  writer.write(currentText);
  writer.write("\nOne more line");
  writer.close();
  writer.done.then((_) {
    exit(0);
  });
}
于 2013-04-08T17:37:58.973 回答