Node.js读取文件,如果存在追加数据,如果不存在则创建文件

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (1182)

使用fs.open()。但是当文件不存在时,数据就存在了。以下是我的代码:

fs.open('person.json', 'w', function (err, data) {
  if (err) throw err;
  console.log(data)
});

console.log(数据)结果是

3

这是为什么?3来自哪里?

我的目的是读取文件(如果存在)并创建新文件(如果不存在)。如何在node.js中做到这一点?

提问于
用户回答回答于

您可以使用“ax”模式表示打开以进行追加。如果该文件不存在,则会创建该文件,但该文件以独占模式打开。或者可以使用“a +”模式表示打开以进行阅读和追加。如果该文件不存在,则创建它 并且 您获得的'3'是文件描述符(“ 在POSIX系统上,对于每个进程,内核维护一个当前打开的文件和资源的表。每个打开的文件被分配一个简单的数字标识符称为文件描述符。“在系统级,所有文件系统操作都使用这些文件描述符来识别和跟踪每个特定文件.Windows系统使用不同但概念上类似的机制来跟踪资源。为了简化用户的工作,Node.js抽象出具体的差异在操作系统之间并为所有打开的文件分配一个数字文件描述符.fs.open()方法用于分配新的文件描述符。一旦分配,文件描述符可用于从中读取数据,向数据写入数据或请求信息关于文件。)

扫码关注云+社区

领取腾讯云代金券