2

我正在构建一个 nodejs 脚本。脚本流程如下:

  1. 使用 r+ 标志打开文件。
  2. 然后将打开的文件内容(使用 fs.read)读取为 json。
  3. 运行用户回调以允许用户操作 json(文件仍处于打开状态)
  4. 将新对象写入文件。
  5. 关闭文件

我的问题是我不知道如何在不关闭文件的情况下确定文件的新大小。

因此,例如,如果我们首先执行以下代码:

ffs.lockAndManipulateJSON(__dirname + '/var/meta.json', function (json) {
   json.test = 'ABC';
   json.foo = 'bar';
});

在未来的某个时候:

ffs.lockAndManipulateJSON(__dirname + '/var/meta.json', function (json) {
   delete json.foo;
});

文件的内容如下:

{
    "test": "ABC"
}    "foo": "bar"
}

但我希望它是:

{
    "test": "ABC"
}

所以,我的问题是:如何在文件仍处于打开状态时使用 nodejs 设置新文件大小?

4

1 回答 1

1

fs.ftruncate 应该做你正在寻找的东西。编辑:*请注意,您需要打开文件“w+”才能使用。

于 2013-04-24T11:55:35.453 回答