首页 > 解决方案 > Dart:使用 RandomAccessFile 替换文件内的内容

问题描述

我正在尝试使用“dart”的 RandomAccessFile 类替换文件中的内容。我的文件内容是:Hello user World 我的飞镖代码是:

import 'dart:io';

main() async{
  File file = File("test/testraf.txt");
  RandomAccessFile raf = await file.open(mode: FileMode.writeOnly);
  var f1 = await raf.setPosition(7);
  f1.writeString("John");
  f1.close();
}

我正在尝试用John替换user。但是上面的代码损坏了我的文件并且没有做预期的工作。这就是我打算做的: 如何使用随机写入替换文件中的内容?Hello John World

是否有可能,我的要求是替换文件内随机位置的数据,而不创建文件的另一个副本?

标签: dartdart-io

解决方案


好的,所以问题是文件模式必须是:FileMode.writeOnlyAppend。工作代码将是:

import 'dart:io';

main() async{
  //File content: Hello user World
  File file = File("test/testraf.txt");
  RandomAccessFile raf = await file.open(mode: FileMode.writeOnlyAppend);
  var f1 = await raf.setPosition(6);
  await f1.writeString("John");
  await f1.close();
}

所以它会输出: Hello John World


推荐阅读