Nodejs中fs模块文件系统的使用以及Node.js Stream(流)

Nodejs中fs模块文件系统的使用

读取文件:

var fs=require("fs");//加载文件系统模块

node.js 文件系统(fs 模块)模块中的方法均有异步和同步的版本,例如读取文件内容的函数有异步的fs.readFile()同步的fs.readFileSync()
异步的方法函数最后一个参数为回到函数 回调函数的第一个参数包含了错误信息(error)建议使用异步 比起同步 异步方法性能更高 速度更快 而且没有阻塞

异步读取:(文件读取写到服务端上)

let url=""; 
fs.readFile(url,function(err,data){//data返回值
     if(err){
        console.log(err);
        return false;
     }
     console.log(data,toString());
     //data 返回的数据格式是buffer格式  buffer转化字符串 toString()
});

同步读取

let data=fs.readFileSync(url).toString();
console.log(data);
 

获取文件信息 判断是否是目录还是文件:

读取文件信息

//异步方法
fs.stat("content.txt",function(err,stat){ //参数1路径 2回调函数
   if(err){
      console.log(err);
      return false;
   }
   console.log("是否是文件"+stat.isFile());//isFile()判断是否为文件 返回值true/false
   console.log("是否是目录"+stat.isDirectory());//isDirectory() 判断是否是目录 返回值true/false
});

读取文件目录:

读取目录

fs.readdir("upload",function(err,files){ //参数1路径 2回调函数
   if(err){
     console.log(err);
     return false;
   }
   //打印出当前目录里面的所有目录
   console.log(files);
});

打开、关闭文件 open close

fs.open("./comment/router","r+",(err,fd)=>{//r+可读可写 r可读
  if(err){
    throw err;
  }
  console.log("文件夹已打开");
  console.log("这里在操作");
  //关闭文件
  fs.close(fd,(err)=>{
    if(err){
      console.log("关闭失败");
      return;
    }
    console.log("关闭成功");
  });
});

文件的写入 覆盖和追加

//异步写入文件 这种文件的写入会覆盖
fs.writerFile("content.txt","测试写入文件"function(err){
   if(err){
      console.log(err);
   }
});
//追加文件的写入
var  txt="追加文件的写入";
fs.appendFile("content",txt,function(err){
   if(err){
      console.log(err);
   }
});

创建 、移除目录:
创建目录 如果目录已经存在不再创建 一般用于图片的上传与下载上

fs.mkdir("./upload",function(err){
   if(err){
     console.log(err);
    
     //移除目录
     fs.rmdir("./comment/user",()=>{
        if(error){
          console.log("删除目录失败");
          return;
        }
       console.log("删除成功");
     })
      return; 
   }
   console.log("创建 upload目录成功");
});

node里的文件流

Node.js Stream(流)
Stream 是一个抽象的接口, Node中有很多对象实现了这个接口,例如 对http服务器发送请求的request对象就是一个Stream

从流中读取数据

//从流中读取数据
var fs=require("fs");
//设置读取的数据
var data="";
//创建流
var readStream=fs.createReadStream("content.txt");
//设置编码格式
 readStream.setEncoding("UTF-8");
//处理流的事件
//当有事件可读时触发
  readStream.on("data",function(res){
    data+=res;
  });
//没有数据可读时触发
   readStream.on("end",function(){
   console.log(data);
  });
 //在读取时发生错误时触发
 
   readStream.on("error",function(err){
   console.log(err);
  });
   console.log("读取完成");
 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值