重点 !!! nodejs 文件系统 fs 模块,及读流,写流

fs 模块

引入fs模块 文件系统

const fs = require('fs')

良好的编码习惯:变量名和模块名保持一致 , 变量名符合规范, 变量名有代表性

fs.readFile('./b.txt',(err,result)=>{
    
    
    console.log(err);
    if(err){
    
    
        console.log(err);
        return;
    }
  console.log(result);//Buffer(11) [104, 111, 108, 108, 111, 32, 119, 111, 114, 108, 100]
  // console.log(result.toString());//hello world
})

回调函数的参数:err 读取文件失败(参数一堆没用不写了)
result 读取成功的数据

如果操作成功了 err 的值null

本目录打开命令行
在这里插入图片描述

我们看到
console.log(result);//Buffer(11) [104, 111, 108, 108, 111, 32, 119, 111, 114, 108, 100]
乱码,
console.log(result.toString());转为字符床就能正常输出

写入

//写....会覆盖原来的内容
fs.writeFile('./text2.txt'  ,'这是写入的内容',(err)=>{
    
    
    console.log(err);//写入成功为null
})

fs.writeFile() 执行的覆盖的操作 第一个参数 文件路径 , 第二个参数写入的内容
如果文件存在,覆盖源文件内容, 如果文件不存在,则新建文件并写入内容

追加

//------追加
fs.appendFile('./text2.txt','--这是追加的内容',(err)=>{
    
    
    console.log(err);
})

如果文件存在则追加内容, 如果文件不存在,则新建并写入内容

删除

//-----------删除
  fs.unlink('./text3.txt',(err)=>{
    
    
   console.log(err);
 })



文件重命名

//----------文件重命名
 fs.rename('./text3.txt','zhao.txt',(err)=>{
    
    
    console.log(err);
 })

fs.rename() 对文件进行重命名 第一个参数是源文件路径, 第二个参数是新文件名字 , 第三个参数是回调函数

文件系统使用

  //创建文件系统
  const fs=  require('fs');
  // 写数据:作用往文件写很多数据
  // for (var i = 0; i <100000 ; i++) {
    
    
  //   fs.appendFile('./a.txt',`写入的数据${
    
    i} \n`,(err)=>{
    
    
  //       console.log(err);
  //   })
  // }

读流

  //---------读流
const  readStream=fs.createReadStream('./a.txt');
  let count=0;//读流的次数
  readStream.on('data',(chunk)=>{
    
    
    count++;
    console.log(count);
     // 参数chunk 是读取的数据
  })
 //  监听 结束end 事件  当没有可读的数据时自动触发事件
  readStream.on('end',()=>{
    
    
    console.log('读流结束');
  })
  //  监听 读流失败的事件 error 
  readStream.on('error',()=>{
    
    
    console.log('读流过程失败了');
  })

写流

//  创建写入流
  const writeStream = fs.createWriteStream('./zhao.txt');
  //  写入数据
  writeStream.write('这是写入的数据hello wrold','utf8');
  //  写入结束
  writeStream.end();
  //  写入完成   触发的事件
  writeStream.on('finish',()=>{
    
    
    console.log('写入完成');
  });

管道流pipe()

把a文件的数据流入到text2文件里面

//  创建一个读流
   const  readStream=fs.createReadStream('./a.txt');
   //  创建一个写入流
   const  writeStream=fs.createWriteStream('./text2.txt');
//  通过管道流实现
   readStream.pipe(writeStream);

猜你喜欢

转载自blog.csdn.net/z18237613052/article/details/114947081