dart - 如何锁定文件以在 Dart 中写入

标签 dart

我想让两个程序(在不同的 Dart VM 上运行)将数据写入同一个文件(实际上是追加)。但是,我找不到锁或类似的机制来避免赛车。有什么建议吗?谢谢。

最佳答案

刚刚添加了文件锁定。 ( http://dartbug.com/17045 改为固定)

复制示例表格 https://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/tests/standalone/io/file_lock_script.dart?spec=svn42733&r=42733

import "dart:io";

main(List<String> args) {
  File file = new File(args[0]);
  int start = null;
  int end = null;
  var  mode = FileLock.EXCLUSIVE;
  if (args[1] == 'SHARED') {
    mode = FileLock.SHARED;
  }
  if (args[2] != 'null') {
    start = int.parse(args[2]);
  }
  if (args[3] != 'null') {
    end = int.parse(args[3]);
  }
  var raf = file.openSync(mode: WRITE);
  try {
    raf.lockSync(mode, start, end);
    print('LOCK SUCCEEDED');
  } catch (e) {
    print('LOCK FAILED');
  } finally {
    raf.closeSync();
  }
}

另见 https://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/tests/standalone/io/file_lock_test.dart?spec=svn42733&r=42733一个更广泛的例子。

关于dart - 如何锁定文件以在 Dart 中写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21924211/

相关文章:

dart - 如何在 Dart 中使用这个 javascript 库?

当我需要将文件名放入变量时,Flutter 如何删除文件扩展名

laravel - laravel护照和 flutter 打如何工作

dart - 如何在Dart中调度事件?

flutter - Flutter推出新的独立屏幕

firebase - Flutter Firestore 同一文档的两个 StreamBuilder 算作 2 次读取?

flutter - 有没有办法在没有用户交互的情况下发送短信?

android - Flutter JSON 无法正确读取

flutter - 为什么flutter dio拦截器不调用该方法?

html - Dart 复选框,强制检查