Node 文件读写模式

在使用 Nodejs 做一些脚手架、以及中间服务时,经常会遇到读写文件操作。对于文件内容的更新,我们往往选择"先删除文件,然后再创建文件",复杂且对于文件操作不存在事务特性!

fs.unlink(filePath, err => {})
fs.writeFile(file, data, err => {})

事实上,对于文件具有不同的打开行为,通过打开行为的不同,我们可以实现不同的效果。如:

  • 创建或替换原文件
  • 对已有的原文件进行替换
  • 对已有的原文件追加内容
  • 对已有的原文件从文件开始处覆盖内容
fs.writeFile(file, data[, options], callback)

options <Object> | <string>

  • encoding <Object> | <string> 设置文件编码,默认值: 'utf8'
  • mode <integer> 设置文件模式(权限), 默认值: 0o666
  • flag <string> 文件打开的行为,默认值: 'w'

示例

test.txt 文件初始内容为 123

fs.writeFile('test.txt', 'a', { flag: `${flag}` }, () => {
  console.log('success')
})
Flag 描述 test.txt 内容
r 打开文件用于读取。如果文件不存在,则出现异常 ‘123’(不变)
r+ 打开文件用于读取和写入。如果文件不存在,则出现异常 ‘a23’
rs+ 以同步模式打开文件用于读取和写入。指示操作系统绕过本地的文件系统缓存(性能有影响 ‘a23’
w 打开文件用于写入。如果文件不存在则创建文件,如果文件已存在则截断文件 ‘a’
wx 'w' 相似,但如果路径已存在则失败 ‘123’(不变)
w+ 打开文件用于读取和写入。如果文件不存在则创建文件,如果文件已存在则截断文件 a
wx+ 'w+' 相似(读取和写入),但如果路径已存在则失败 ‘123’(不变)
a 打开文件用于追加。如果文件不存在,则创建该文件 ‘123a’
ax 'a' 相似,但如果路径已存在则失败 ‘123’(不变)
a+ 打开文件用于读取和追加。如果文件不存在,则创建该文件 ‘123a’
ax+ 'a+' 相似(读取和追加),但如果路径已存在则失败 ‘123’(不变)
as 以同步模式打开文件用于追加。如果文件不存在,则创建该文件 ‘123a’
as+ 以同步模式打开文件用于读取和追加。如果文件不存在,则创建该文件 ‘123a’

在这里插入图片描述

参考地址

  • http://nodejs.cn/api/fs.html#fs_file_system_flag
发布了257 篇原创文章 · 获赞 868 · 访问量 118万+

猜你喜欢

转载自blog.csdn.net/ligang2585116/article/details/104336143