如何使用Node写文件

120 阅读1分钟

如何使用Node写文件

在Node.js中写入文件的最简单方法是使用fs.writeFile() API。

例子。

const fs = require('fs')

const content = 'Some content!'

fs.writeFile('/Users/flavio/test.txt', content, (err) => {
  if (err) {
    console.error(err)
    return
  }
  //file written successfully
})

另外,你也可以使用同步版本的fs.writeFileSync()

const fs = require('fs')

const content = 'Some content!'

try {
  const data = fs.writeFileSync('/Users/flavio/test.txt', content)
  //file written successfully
} catch (err) {
  console.error(err)
}

默认情况下,如果文件确实已经存在,该API将替换文件的内容

你可以通过指定一个标志来修改默认值。

fs.writeFile('/Users/flavio/test.txt', content, { flag: 'a+' }, (err) => {})

你可能会用到的标志是

  • r+ 打开该文件进行读写
  • w+ 打开文件进行读写,将流定位在文件的开头。如果该文件不存在,则会被创建
  • a 开启文件以便写入,将流定位在文件的末端。如果不存在,文件将被创建
  • a+ 打开文件进行读写,将数据流定位在文件的末端。如果不存在,文件就被创建

(你可以在nodejs.org/api/fs.html… 找到更多的标志)

追加到一个文件

将内容附加到文件末尾的一个方便的方法是fs.appendFile() (和它的fs.appendFileSync() 对应)。

const content = 'Some content!'

fs.appendFile('file.log', content, (err) => {
  if (err) {
    console.error(err)
    return
  }
  //done!
})

使用流

所有这些方法都是在将控制权返回给你的程序之前将全部内容写入文件(在异步版本中,这意味着执行回调)。

在这种情况下,一个更好的选择是使用流来写文件内容。