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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋飛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值