node---fs模块

     fs算是node.js中太常见的模块了,定位于文件系统模块,主要负责读写文件,fs同时提供了异步和同步方法。


  • 读取文件:
let fs=require('fs');//下面代码不再写这句
///readFile为异步读取文件,传入的回调函数接收两个参数:err,data.当正常读取时,err参数为null,data参数为读取到的String。当读取发生错误时,err参数代表一个错误对象,data为undefined。异步请求的时候,无需等待,后面代码正常执行。
fs.readFile('./a.txt','utf-8',(err,data)=>{
     if (err) {console.log(err.code)}
     else     {console.log(data)};
  });

///readFileSync为同步读取文件,同步读取错误时候,可以用try...catch进行捕获
try {
     var data = fs.readFileSync('./b.txt', 'utf-8');
     console.log(data);
 } catch (err) {
     console.log(err)
 }
  • 写入文件:
///fs.writeFile为异步写入方法,不管同步还是异步,当路径文件不在的时候,node会自动创建文件
let content="喜剧之王";
fs.writeFile('./text4.txt',content,(err)=>{
    if(err){console.log('异步失败');
    }else{console.log('异步成功')};
});

///同样适用try...catch捕获同步可能的错误
try{
    fs.writeFileSync('./text3.txt');
    console.log('同步成功')
}catch(err){
    console.log('同步失败')
}

///fs.appendFile是给文件追加内容,同样有同步与异步两个API
fs.appendFile('./text4.txt','周星驰',(err,data)=>{
    if(err){console.log(123)}else{
        console.log('异步成功')
    }});
try{fs.appendFileSync('./text4.txt','至尊宝')
    console.log('同步追加成功')
}catch(err){
    console.log(err)
}
  • 获取信息:
///fs.stat()获取文件大小、创建时间等信息,fs.stat()返回一个stat()对象,
fs.stat('./text4.txt',(err,data)=>{
    if(err){
        console.log('stat出错了')
    }else{
        console.log(data)       
    }
})

//同样的stat也有一个对应的同步函数fs.statSync()
try{
    let data=fs.statSync('./hello.js');
    console.log(data)
}catch(err){
console.log('sorry      ')
}
  • fs管道pipe:
// 就像可以把两个水管串成一个更长的水管一样,两个流也可以串起来。一个Readable流和一个Writable流串起来后,所有的数据自动从Readable流进入Writable流,这种操作叫pipe。

let wsP=fs.createWriteStream('a.txt','utf-8');
let rsP=fs.createReadStream('b.txt','utf-8');
rsP.pipe(wsP );

//通过管道,把b.txt文件读取的内容写入到a.txt,相当于复制了一份b.txt

这里写图片描述

     fs的方法很多,又截图部分就能见着了(虽然图片有点伤。。。),我们都可以通过源码学模块。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值