nodejs fs 内置模块
2022-01-18 本文已影响0人
暴躁程序员
fs.png
1. readFile 读取文件数据
语法
异步读取:fs.readFile(目标文件绝对路径 , 回调函数)
同步读取:fs.readFileSync(目标文件绝对路径 , 默认utf-8编码)
注意:读取的内容是二进制数据,可使用 .toString() 转化成字符串进行查看
const fs = require('fs')
const path = require('path')
const fileName = path.resolve(__dirname, 'msg.txt') // 转绝对路径
// 异步读取
fs.readFile(fileName, (err, data) => {
if (err) {
console.error(err)
return
}
console.log(data.toString()) // data 是二进制类型,需要转换为字符串
})
// 同步读取
const readResult = fs.readFileSync(fileName, "utf8")
console.log(readResult);
2. writeFile 写入文件数据
语法
异步写入:fs.writeFile(目标文件绝对路径 , 写入的数据 , 下方opt参数 , 回调函数)
同步写入:fs.writeFileSync(目标文件绝对路径 , 写入的数据 , 下方opt参数)
- 写入的数据必须是基础类型数据或buffer二进制数据,若是引用类型,建议使用 JSON.stringify() 转JSON字符串
- 如果找不到写入文件,会自动创建文件
-
opt参数(不写此参数,默认覆盖,即 w)
image.png
const fs = require('fs')
const path = require('path')
const fileName = path.resolve(__dirname, 'msg.txt') // 转绝对路径
const content1 = '写入基础类型数据\n'
const content2 = {
name : '写入对象'
}
const opt = {
flag: 'a' // 追加写入用 'a'。覆盖用 'w'
}
// 异步写法
fs.writeFile(fileName, content1, opt, (err) => {
if (err) {
console.error(err)
return
}
console.log('写入成功1');
})
// 同步写法
fs.writeFileSync(fileName, content1, opt)
// 没有文件,创建文件
fs.writeFile('./write.txt', content1, opt, (err) => {
if (err) {
console.error(err)
return
}
console.log('写入成功2');
})
// 写入引用类型数据
fs.writeFile(fileName, content2, opt, (err) => {
if (err) {
console.error(err)
return
}
console.log('写入成功3');
})
3. appendFile 追加写入
语法
异步写入:fs.appendFile(目标文件绝对路径 , 写入的数据 , 下方opt参数 , 回调函数)
同步写入:fs.appendFileSync(目标文件绝对路径 , 写入的数据 , 下方opt参数)
初测和writeFile没啥区别,只是如果不写opt参数,默认是追加,即 a
const fs = require('fs')
const path = require('path')
const fileName = path.resolve(__dirname, 'msg.txt') // 转绝对路径
const content = '写入基础类型数据\n'
const opt = {
flag: 'a' // 追加写入用 'a'。覆盖用 'w'
}
// 异步写法
fs.appendFile(fileName, content, opt, (err) => {
if (err) {
console.error(err)
return
}
console.log('追加成功');
})
// 同步写法
fs.appendFileSync(fileName, content, opt)
4. 文件拷贝
语法
异步写入:fs.copyFile(被拷贝文件绝对路径 , 拷贝到目标文件路径 , 回调函数)
同步写入:fs.copyFileSync(被拷贝文件绝对路径 , 拷贝到目标文件路径)
- 拷贝到的目标文件不存在,会自动创建文件
- 也可以用 读取和写入方法联合实现拷贝
const fs = require('fs')
const path = require('path')
const fileName = path.resolve(__dirname, 'msg.txt') // 转绝对路径
// 异步写法
fs.copyFile(fileName, './msg1.txt', (err) => {
if (err) {
console.error(err)
return
}
console.log('拷贝成功');
})
// 同步写法
fs.copyFileSync(fileName, './msg2.txt')
5. 判断文件是否存在
语法: fs.exists(文件路径 , 回调函数)
fs.exists(fileName, (res) => {
console.log(res)
})
总结
除此之外还有
大文件读写操作
文件目录增删改成等操作
建议参考:https://blog.csdn.net/github_38140984/article/details/83006101