node中的内置模块fs

58次阅读

共计 1187 个字符,预计需要花费 3 分钟才能阅读完成。

fs 文件系统操作模块

注:fs 模块 => 包括文件目录的创建、删除、查询以及文件的读取、写入等;

在 fs 模块中,所有的方法都分为同步和异步两种实现,具有 sync 后缀的方法为同步方法,不具有 sync 后缀的方法为异步方法

文件

  • 读文件 异步 fs.readFile(路径,转码规则,(err,data)=>{})
  • 同步 let res = fs.readFileSync(路径,转码规则)
  • 写文件 异步 fs.writeFile(路径,你要写的内容,(err)=>{}) 覆盖式写入
  • 同步 fs.writeFileSync(路径,你要写的内容) 覆盖式写入
  • 写文件 异步 fs.appendFile(路径,你要写的内容,(err)=>{}) 追加式写入
  • 同步 fs.appendFileSync(路径,你要写的内容) 追加式写入
  • 删除 异步 fs.unlink(路径,(err)=>{})
  • 同步 fs.unlinkSync(路径)
  • 拷贝文件 异步 fs.copyFile(原路径,新路径,(err)=>{})
  • 同步 fs.copyFileSync(原路径,新路径)
  • 重命名 异步 fs.rename(原路径,新路径,(err)=>{})
  • 同步 fs.renameSync(原路径,新路径)

文件夹

  • 读取文件夹 异步 fs.readdir(路径,(err,data)=>{})
  • 同步 let res = fs.readdirSync(路径)
  • 创建文件夹 异步 fs.mkdir(路径,(err)=>{})
  • 同步 fs.mkdirSync(路径)
  • 删除空文件夹 异步 fs.rmdir(路径,(err)=>{})
  • 同步 fs.rmdirSync(路径)

判断文件或文件夹是否存在

  • 只有一个同步 fs.existsSync(路径) 存在返回 true 不存在返回 false
    let fs = require("fs");

    let res = fs.existsSync("./dist/2.js");
    console.log(res)

获取文件或文件夹的信息

  • 异步 fs.stat(路径,(err,data)=>{})
  • 同步 let res = fs.statSync(路径)

流式读取

  • 1、创建可读流
  • 2、创建一个可写流
  • 3、pipe 输出
    let fs = require("fs");

    let rs = fs.createReadStream("./src/1.mp4");
    let ws = fs.createWriteStream("./src/2.mp4");
  • rs.pipe(ws)
  • 读一点写一点
  • data 事件 当数据改变的时候会被触发
    rs.on("data",(thunk)=>{console.log(thunk);
        if(!ws.write(thunk)){rs.pause()   // 暂停
        }
    })
  • 写完之后会触发 drain
    ws.on("drain",()=>{rs.resume();  // 恢复
    })
  • 读完 end 事件
    rs.on("end",()=>{console.log("成功")
    })

正文完
 0