在 node.js 中使用 fs 覆盖文件的最佳方法是什么

新手上路,请多包涵

我正在尝试覆盖现有文件。我首先使用以下方法检查文件是否存在:

 fs.existsSync(path)

如果文件没有退出,我正在创建和编写使用:

 fs.writeFileSync(path,string)

问题是当文件已经存在并且我想覆盖它的所有内容时。是否有单行解决方案,到目前为止我搜索并找到了使用 fs.truncate 和 fs.write 的解决方案,但是是否有一次性解决方案?

原文由 Tomas Katz 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 3.8k
2 个回答

fs.writeFileSyncfs.writeFile 默认情况下覆盖文件,如果这是你想要做的,则不需要额外检查。文档中提到了这一点:

fs.writeFile

异步将数据写入文件,如果文件已存在则替换该文件。

原文由 mihai 发布,翻译遵循 CC BY-SA 4.0 许可协议

找到了解决方案。 fs.writeFileSync 获取可以是对象的选项的第三个参数。所以如果你得到“文件已经存在”,你应该这样做。

 fs.writeFileSync(path,content,{encoding:'utf8',flag:'w'})

原文由 Tomas Katz 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题