文章目录
Node.js内置的fs模块
fs 全称file system
文件写入
异步写入
语法: fs.writeFile(file,data[,options],callback)
代码演示
// 1.导入fs模块
const fs = require('fs');
// 2.写入文件
fs.writeFile('./素材/座右铭.txt', '三人行, 必有我师焉', err => {
// err默认为null, 有错误才有错误信息
if (err) {
console.log('错误信息: ' + err);
return;
}
console.log('写入文件成功');
})
// 异步, 不会依次执行, 比如回调函数,而是会放在队列中,
console.log(1 + 1);
// 打印语句输出顺序 先2, 后writeFile的回调函数打印内容, 效率高
同步写入
fs.writeFileSync('./素材/data.txt','test同步写入');
console.log("同步写入执行完毕");
console.log(1 + 1);
追加写入
appendFile / appendFileSync
- 语法:
fs.appendFile(file, data[, options], callback)
fs.appendFileSync(file, data[, options])
代码演示
const fs = require('fs');
fs.appendFile('./素材/座右铭.txt', '\r\n则其善者而从之', err => {
if (err) {
console.log('追加失败: ' + err);
return;
}
console.log("追加成功");
})
fs.writeFile方法也可以实现追加写入
fs.writeFile('./素材/座右铭.txt', '勿以善小而不为', {
flag: 'a' }, err => {
if (err) {
console.log(err);
return;
}
console.log('写入成功');
})
流式写入
- 语法: fs.createWriteStream(path[, options])
代码演示
const fs = require('fs');
const cws = fs.createWriteStream('./素材/蛊真人.txt');
cws.write('落魄谷中寒风吹,春秋蝉鸣少年归\r\n荡魂山处石人泪,定仙游走魔向北\r\n逆流河上万仙退,爱情不敌坚持泪\r\n宿命天成命中败,仙尊悔而我不悔')
cws.close;
文件写入应用场景
文件读取
异步和同步读取
- 语法: fs.readFile(path[, options], callback)
- 语法: fs.readFileSync(path[, options])
代码演示
const fs = require('fs');
// 想读取文件内容,需要指定格式,或者调用toString方法
fs.readFile('./素材/蛊真人.txt', (err, data) => {
if (err) {
console.log(err);
return;
}
console.log(data.toString());
});
const data = fs.readFileSync('./素材/座右铭.txt', 'utf8')