目录
一、简述
fs模块是 Node.js官方提供的,用来操作文件的模块(读取/写入)。它提供了一些属性和方法,用来满足用户对文件的操作。
如果在js代码中,使用fs模块操作文件,则需要先使用require导入
const fs = require('fs');
运行方法
在终端调用,文件路径要正确 然后加上 node 文件名 回车键运行

二、创建文件夹
在当前目录下创建一个temp文件夹:
const fs = require('fs')
fs.mkdir('./temp',(err)=>{
if(err){
console.log(err.message)
return
}
console.log('创建文件夹成功')
})
三、读取文件
fs.readFile('文件名', (err, data) => {})
参数1:读取的文件路径
参数2:读取完毕的回调函数
// 先导入fs模块
const fs = require('fs')
// 读取文件
// 参数1:读取的文件路径
// 参数2:读取完毕的回调函数
fs.readFile('./1.txt', (err, data) => {
// 如果读取成功err为空,如果读取失败err有值。
if (!err) {
// 读取成功,data有值。
// 默认读取到的是这个文件的二进制(0 和1的组合) 的16进制的表现形式。
// console.log('读取成功',data);
// 如果想把他转换成字符串,只需要调用toString()方法即可。
console.log('读取成功', data.toString());
} else {
// 读取失败,err有值。
console.log('读取失败', err);
}
})四、写入文件
有两种情况
1.会覆盖内容原本内容 fs.writeFile
fs.writeFile('文件名', str, err => {})
参数一:写入的文件路径(写入时不存在这个文件,会自动帮你创建)
参数二:写入的内容
参数三:回调函数(完成的回调函数)
const str = `
大学生活很美好,切勿只在寝室耗。\n
人际关系需看淡,提升自我是王道。\n
莫看别人嬉戏闹,绩点分数最重要。\n
学术代码乐趣多,自习室里最逍遥。\n
`
fs.writeFile('./1.txt', str, err => {
if (err) {
console.log('写入失败', err);
} else {
console.log('写入成功');
}
})
// 如果写入时有这个文件,就是用新内容替换。创建一个名为index.html的文件,并写入一行字符串。
fs.writeFile('./index.html',"<h1>你好,中国</h1>",(err)=>{
if(err){
console.log(err.message)
return
}
console.log("创建写入文件成功")
})
重写index.html,并为文件指定编码:
fs.writeFile('./index.html','<h2>面朝大海,春暖花开</h2>','utf-8',(err)=>{
if(err){
console.log(err.message)
return
}
console.log('写入指定格式文件成功')
})Node.js仅支持utf8 ucs2 ascii binary base64 hex这几种格式,对于GBK,GB2312等特殊格式需要使用额外的库(这里使用iconv-lite)。
const iconv = require('iconv-lite')
fs.writeFile('./style.css',iconv.encode('面朝大海,春暖花开','gbk'),(err)=>{
if(err){
console.log(err.message)
return
}
console.log("以GBK格式写入成功")
})2.文件内容后面添加不覆盖原本的内容 fs.appendFile
fs.appendFile('文件名', str, err => {})
参数一:写入的文件路径(写入时不存在这个文件,会自动帮你创建)
参数二:写入的内容
参数三:回调函数(完成的回调函数)
const str = `
大学生活很美好,切勿只在寝室耗。\n
人际关系需看淡,提升自我是王道。\n
莫看别人嬉戏闹,绩点分数最重要。\n
学术代码乐趣多,自习室里最逍遥。\n
`
//追加文件内容 不覆盖原本的内容
fs.appendFile('./1.txt', str, err => {
if (!err) {
console.log('追加成功');
} else {
console.log('追加失败')
}
})五、拷贝文件
fs.copyFile('要拷贝文件名', '文件名', err => {})
参数一:写入的要拷贝文件路径
参数二:写入的内容的文件路径(写入时不存在这个文件,会自动帮你创建)
参数三:回调函数(完成的回调函数)
//拷贝文件
fs.copyFile('./1.txt', './2.txt', err => {
if (err) {
console.log("文件拷贝失败,原因是:" + err);
return;
}
console.log("文件拷贝成功")
})
六、删除文件
fs.unlink('文件名', err => {})
参数一:要删除的文件路径
参数二:回调函数
// //删除文件
fs.unlink('./2.txt', err => {
if (!err) {
console.log('删除成功')
} else {
console.log('删除失败');
}
})