IO模块

什么是IO?

对外部设备的输入与输出,外部设备(磁盘,网卡,显卡,打印机等等),IO速度往往低于内存与CPU之间的交互速度.

fs模块

由于IO的速度远远满于CPU和内存之间的交互速度,如果使用同步代码的话,在做IO是时会阻塞js的执行(js执行是cpu直接与内存交互),因此基本所有的api都是异步执行的,node12之后回调可以使用fs.promise.api 写  

1.readFile(filename,encoding)   readFileSync 同步读代码

const fs = require("fs");
const path = require("path");
// console.log(path.resolve(__dirname,"./1.txt"));  //路径拼接
fs.readFile(path.resolve(__dirname,"./1.txt"),"",(err,content)=>{
    console.log(content.toString())
}) //path 编码格式 callback   

//编码格式默认为null  可以通过设置

async function test(){
  console.log(await fs.promises.readFile(path.resolve(__dirname,"./1.txt"),"utf-8"));
}

2.writeFile(filename,content,encoding)   读文件

const fs = require("fs");
const path = require("path");

const filename = path.resolve(__dirname,"./2.txt") //文件不存在自动添加文件

async function test(){
    const buffer = Buffer.from("dasdasfsa","utf-8"); //编码默认utf-8
    await fs.promises.writeFile(filename,buffer,{
        flag:"a",//a 追加
        
    })
    console.log("写入成功")
}
test();

3.stat(filename)  文件或者目录状态

Stats {   //状态内容

        dev: 177919585,  

        mode: 33206,

        nlink: 1,

        uid: 0,

        gid: 0,

        rdev: 0,

        blksize: 4096,

        ino: 562949954559788,

        size: 45,

        blocks: 0,

        atimeMs: 1619939334059.6145,

        mtimeMs: 1619939333986.0823,

        ctimeMs: 1619939333986.0823,

        birthtimeMs: 1619939180755.997,

        atime: 2021-05-02T07:08:54.060Z,

        mtime: 2021-05-02T07:08:53.986Z,

        ctime: 2021-05-02T07:08:53.986Z,

        birthtime: 2021-05-02T07:06:20.756Z

      }

const fs = require("fs");
const path = require("path");

const filename = path.resolve(__dirname,"./1.txt") //文件不存在自动添加文件

async function test(){
   let state = await fs.promises.stat(filename);//状态信息
   let dir = await fs.promises.readdir(filename); //读取文件子目录

   console.log(state.isDirectory(),state.isFile());  //是否是文件或者目录
}
test();

4.readdir() 文件子目录

5.mkdir() 创建目录

6.unlink()  删除文件

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值