fs模块主要操作读写文件。
流式操作
处理大文件读取写入。
const fs = require('fs');
const path =require('path')
// 读大文件 搭建 读取大文件管道
let readStream = fs.createReadStream(path.join(__dirname,'path.js'));
// 设置编码格式
readStream.setEncoding('utf-8');
let data = null;
// 文件还有数据流,执行。
readStream.on('data',(chunk)=>{
data += chunk;
})
// 文件流里面没有数据后,执行
readStream.on('end',()=>{
console.log(data);
})
写入大文件
const fs = require('fs');
const path =require('path')
// 写入大文件
let writeStream = fs.createWriteStream(path.join(__dirname,'write.txt'));
writeStream.write('写入1');
writeStream.write('写入2');
// 调用写入完成命令
writeStream.end()
// 文件写入完成后触发 需要调用end才会执行这个方法
writeStream.on('finish',err =>{
if(!errl)
return console.log('写入成功');
})
连接读写管道
const fs = require('fs');
const path =require('path')
let readStream = fs.createReadStream(path.join(__dirname,'path.js'));
let writeStream = fs.createWriteStream(path.join(__dirname,'write.txt'));
// 连接读写管道直接操作
readStream.pipe(writeStream)
直接拷贝文件
// 直接拷贝文件
fs.copyFile(path.join(__dirname,'path.js'),path.join(__dirname,'path'),(err)=>{
console.log(err);
if(!err) {
console.log('copy ok');
}
})
目录操作
mkdir创建文件,readdir读取文件,rmdir删除文件
fs.mkdir(path.join(__dirname,'前端伪大叔'),(err)=>{
if(!err)
console.log('创建成功');
})
fs.readdir(path.join(__dirname),(err,files)=>{
if(!err)
// 创建成功后写入内容
fs.writeFileSync(path.join(__dirname,'write'),files)
})
fs.rmdir(path.join(__dirname,'前端伪大叔'),err=>{
if(!err)
console.log('del ok');
})