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');})
