Nodejs,中fs模块常用方法

常用的莫过于对文件的增删改查以及读取文件,慢慢的一个一个说。

对文件的读取,有同步读取和异步读取,同步读取如果文件过大会造成阻塞,而异步读取不会导致IO阻塞

先上异步读取的代码

let fs = require("fs");
 fs.readFile("images/bg5-4.png",function(err,data){//异步读取文件所有内容
     if(!err){
         console.log(data);//如果读取的是二进制文件,如图片,视频等,得到的是buffer对象。二进制数据
         
     }else{
         console.log(err);
         
     }
 })

再上同步读取的代码

 

let buff =fs.readFileSync("images/bg5-4.png",{flag:'a'});
//同步读取文件所有内容,后面flog 是设置文件系统标识的a代表 打开文件用于追加。
//如果文件不存在,则创建该文件。

如果发生读取失败了,还需要try {} catch (error) {}去记录错误处理错误,所以异步IO还是很有好处的。

写入文件的异步代码

let fs = require("fs");
 let data = fs.readFileSync("./images/bg5-4.png");
 fs.writeFile("./images/bg5.png",data,function(err){//异步写入文件,如果data是个buffer数据自动忽略encoding设置的字符类型
    if(!err){
        console.log("写入成功");//这里的如果成功err为null(fales),不成功则为错误信息
    }
    
     
     
     
 })

写入文件的同步代码

 fs.writeFileSync("./images/bj6.png",data,{flag:"w"})
//与异步的api相同。但是同步中没有回调函数,返回值为undefined。

读取某文件下所有文件目录名

let fs = require("fs");
 fs.readdir("./text",{encoding:"utf8",withFileTypes:false},function(err,data){
     if(!err){
         let brr = [];//用于存放目录名
        
         data.forEach(item =>{
            let arr= item.split(".");//遍历数据以.分割成小数组
                brr.push(arr[0]);//取数组下标为0的目录名
         })
         fs.writeFileSync("./dats.txt",JSON.stringify(brr));//把数据写到文件中
         console.log(brr);
         
     }else{
         console.log(err);
         
     }
 })

读取文件信息

var fs = require('fs');

fs.stat('dats.txt', function (err, stat) {
    if (err) {
        console.log(err);
    } else {
        // 是否是文件:
        console.log('isFile(是否为文件): ' + stat.isFile());
        // 是否是目录:
        console.log('isDirectory(是否为目录): ' + stat.isDirectory());
        if (stat.isFile()) {
            // 文件大小:
            console.log('size(文件大小kb): ' + stat.size);
            // 创建时间, Date对象:
            console.log('birth time(创建时间): ' + stat.birthtime);
            // 修改时间, Date对象:
            console.log('modified time(修改时间): ' + stat.mtime);
        }
    }
});

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

new 前端

请博主喝杯咖啡吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值