飞镖:使用RandomAccessFile

时间:2019-11-02 02:34:29

标签: dart dart-io

我正在尝试使用“ 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 。 但是上面的代码破坏了我的文件,并且没有完成预期的工作。 这就是我打算做的:Hello John World 如何使用随机写入替换文件内的内容?

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

1 个答案:

答案 0 :(得分:0)

好的,伙计们,问题在于文件模式必须是: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