dart - 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
是否有可能,我的要求是替换文件内随机位置的数据,而不创建文件的另一个副本?
解决方案
好的,所以问题是文件模式必须是: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
推荐阅读
- deployment - 在 JBoss 7.x 中更改 EAR 部署名称
- tsql - 使用 patindex 替换字符
- ios - 带有 Section、IndexList 和 Search 的 UITableView
- node.js - 添加 ng-toolkit/universal 后出错 - ERROR { Error: Uncaught (in promise): Error
- c# - Is it a good idea to move all non-UI code to a different thread?
- ios - IOS/Objective-C: Share Dialog for App Without Facebook SDK
- outlook - Office-js installation options
- php - I can't get the ID variable using mysqli_insert_id
- java - RequestContextHolder.getRequestAttributes() 在@Async 之后为空
- jquery - Angular 6 和 Popper.js 切换不起作用