node的内置模块fs的同步异步流方式的写入与读出

fs ( File System ) 文件系统

在node中我们可以通过fs模块来和系统中的文件进行交互
通过fs模块可以对磁盘中的文件做各种增删改查的操作
下面我就为大家先介绍一下关于fs的同步,异步,流三种方式的写和读的操作。

当我们在进行操作之前一定要注意讲fs模块引入

let fs = require("fs");

1.同步写入:
三个参数中,第一个参数为需要写入信息的文件地址,第二个参数为写入的信息,第三个参数是讲我们的信息改为utf-8的格式。

// 同步(覆盖式写入)
fs.writeFileSync("./1.txt","world","utf-8");

通过这样的写入我们可以在文件中获得我们写入的信息
在这里插入图片描述
2.异步写入:

// 异步,如果错误那么回调输出报错
fs.writeFile("./1.txt","hello","utf-8",(err)=>{
          console.log(err);
})

在异步写入方式中,我们多出一个参数为一个回调函数,err: 错误信息,如果操作过程中出现了错误,则该对象存在,如果没有出现错误,则该参数的值为null,错误优先

此时我们再看一下我们的txt文件。
在这里插入图片描述
我们发现我们刚刚同步方式写入的world已经被这次写入的hello给覆盖掉了。对的我们的fs.writeFile和fs.writeFileSync属于是覆盖式写入,那我们如果不想覆盖改怎么解决呢。
我们这时,可以通过fs.appendFileSync的方式来写入文件,

// 不覆盖,后面继续写入
fs.appendFileSync("./1.txt","您好","utf-8");

此时我们再来检查一下txt文件
在这里插入图片描述
此时我们可以发现我们的hello并没有覆盖,达成了我们想要的效果了。

3.流方式写入

let wf = fs.createWriteStream("./1.txt");
wf.write("6666666","utf-8");

我们先用fs.createWriteStream创建出来了一个流通道,再通过write方式来将我们的信息进行写入。

在这里插入图片描述
接下来再来介绍一下我们的读出

1.同步读出

// 同步读出
var read = fs.readFileSync("./1.txt","utf-8");
console.log(read);

再来看一下我们的结果
在这里插入图片描述
2.异步读出

//异步读出

fs.readFile("./1.txt","utf-8",(err,data)=>{
         if(!err){
             console.log(data);
         }
})

与异步写入很相似,我们多出一个回调函数,优先错误,如果不出现错误情况的话,就可以读出我们的数据。
在这里插入图片描述
3.流方式读出

//流方式读出

var rf = fs.createReadStream("./1.txt");
var body = "";
rf.on("data",(thunk)=>{
    console.log(thunk);
    body += thunk;
})

rf.on("end",()=>{
    console.log(body);
})

我们先通过定义一个空字符串,通过on的方法来监听,把每次读出的加到body里,通过“end”的事件,当读出结束后,输出读出的文件。
这样也就完成了我们的流方式读出文件。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值