fs模块主要操作读写文件。

流式操作

处理大文件读取写入。

  1. const fs = require('fs');
  2. const path =require('path')
  3. // 读大文件 搭建 读取大文件管道
  4. let readStream = fs.createReadStream(path.join(__dirname,'path.js'));
  5. // 设置编码格式
  6. readStream.setEncoding('utf-8');
  7. let data = null;
  8. // 文件还有数据流,执行。
  9. readStream.on('data',(chunk)=>{
  10. data += chunk;
  11. })
  12. // 文件流里面没有数据后,执行
  13. readStream.on('end',()=>{
  14. console.log(data);
  15. })

写入大文件

  1. const fs = require('fs');
  2. const path =require('path')
  3. // 写入大文件
  4. let writeStream = fs.createWriteStream(path.join(__dirname,'write.txt'));
  5. writeStream.write('写入1');
  6. writeStream.write('写入2');
  7. // 调用写入完成命令
  8. writeStream.end()
  9. // 文件写入完成后触发 需要调用end才会执行这个方法
  10. writeStream.on('finish',err =>{
  11. if(!errl)
  12. return console.log('写入成功');
  13. })

连接读写管道

  1. const fs = require('fs');
  2. const path =require('path')
  3. let readStream = fs.createReadStream(path.join(__dirname,'path.js'));
  4. let writeStream = fs.createWriteStream(path.join(__dirname,'write.txt'));
  5. // 连接读写管道直接操作
  6. readStream.pipe(writeStream)

直接拷贝文件

  1. // 直接拷贝文件
  2. fs.copyFile(path.join(__dirname,'path.js'),path.join(__dirname,'path'),(err)=>{
  3. console.log(err);
  4. if(!err) {
  5. console.log('copy ok');
  6. }
  7. })

目录操作

mkdir创建文件,readdir读取文件,rmdir删除文件

  1. fs.mkdir(path.join(__dirname,'前端伪大叔'),(err)=>{
  2. if(!err)
  3. console.log('创建成功');
  4. })
  5. fs.readdir(path.join(__dirname),(err,files)=>{
  6. if(!err)
  7. // 创建成功后写入内容
  8. fs.writeFileSync(path.join(__dirname,'write'),files)
  9. })
  10. fs.rmdir(path.join(__dirname,'前端伪大叔'),err=>{
  11. if(!err)
  12. console.log('del ok');
  13. })