一、fs模块—读取文件内容
1. 什么 fs 模块
- node提供用来操作文件的内置模块,模块里有很多的属性和方法,
用于处理文件
,如:文本,图片,视频,音频等等
2. fs 读取文件内容
- 方法
- 参数解读:
- 参数1:
必选
参数,字符串,表示文件的路径
。 - 参数2:可选参数,表示以什么
编码格式
来读取文件。 - 参数3:
必选
参数,文件读取完成后,通过回调函数
拿到读取的结果
- 参数1:
- 使用
// 引入fs模块
const fs = require('fs');
//调用读取文件内容的方法
fs.readFile('./text.txt', 'utf-8', (err, data) => {
// 如果读取成功,err的值为nul,失败时,err的值为错误对象
if (err) {
console.log(err);
return;
}
console.log(data);
});
- 注意:
fs.readFile()
返回数据之前将文件的全部内容读取到内存中,因此对于大文件最好使用流(Stream模块)来读取文件的内容
二、fs模块—写入文件内容
1. 写入文件内容 fs.writeFile()
- 方法
// path:路径
// content:写入内容
// callback:回调函数
fs.writeFile(path,content,callback)
- 使用
const fs = require('fs')
const content = '写入的内容'
fs.writeFile('./text.txt', content, err => {
// 如果读取成功,err的值为nul,失败时,err的值为错误对象
if (err) {
console.error(err)
return
}
console.log('文件内容写入成功')
})
2. 追加文件内容 fs.appendFile()
- 方法
// path:路径
// content:写入内容
// callback:回调函数
fs.appendFile(path,content,callback)
- 使用
const content = '追加的内容'
fs.appendFile('./test.txt', content, err => {
if (err) {
console.error(err)
return
}
consloe.log('文件内容追加成功')
})
- fs模块的其他方法:
http://nodejs.cn/learn/the-nodejs-fs-module
三、 fs模块—个人信息表案例
- 需求:
将 - 改为 :
姓名-老王
年龄-30岁
婚否-已婚
特征-邋遢
- 实现
const fs = require('fs');
//读取文件内容
fs.readFile('./text.txt', 'utf-8', (err, data) => {
if (err) {
console.log(err);
return;
}
const newList = [];
//处理文件内容
data.split('\n').map((i) => {
newList.push(i.replace('-', ':'));
});
const content = newList.join('\n');
console.log(content);
//更改文件内容
fs.writeFile('./text.txt', content, (err) => {
if (err) {
console.log(err);
return;
}
console.log('文件更改成功');
});
});