node之fs模块使用

275 阅读2分钟

fs

fs是node中的内置模块,是用来对文件进行读写,复制,删除,重命名,创建文件,文件夹等操作的

使用fs

stat (检查是文件还是文件夹)

  var fs=require('fs');
fs.stat('./module',(err,data)=>{
   if(err){console.log(err)}
   if(data.isFile()){
       //data就是所识别到的给的路径文件的信息
       //通过isfile方法判断是不是文件,是文件返回true不是返回false
       console.log('./module是文件')
   }else{
       console.log('./module是文件夹')
   }
})

mkdir(创建文件)

  fs.mkdir('./test',(err)=>{
 if(err){console.log(err)}
 console.log('创建成功')
}) 

writefile(写入内容)

  fs.writeFile('./tests.js','var aaa=1;',(err)=>{
   //写入内容,如果有文件则覆盖掉原文件的内容,如果没有则创建文件再写入内容
  if(err)console.log(err);
  console.log('写入成功')
})

appendFile (向文件里写入内容)

  fs.appendFile('./tests.js','var aa=1;',(err)=>{
      //向文件里写入内同,如果有文件向原文件里添加内容(不会覆盖掉原文件的内容),没有则创建文件再写入内容
   if(err)console.log(err);
   console.log('写入成功')
}) 

readFile (读取文件)

 fs.readFile('./tests.js',(err,data)=>{
  if(err) console.log(err);
  //因为读取出来的内容是十六进制的,所以我们需要使用toString方法转换为字符串
  console.log(data.toString());
})

readdir(读取文件夹)

 fs.readdir('./module',(err,data)=>{
  if(err) console.log(err);
  //data是一个数组包含了文件夹里的文件和文件夹
  console.log(data)
})

rename(对文件重命名)

 fs.rename('./tests.js','./module/inde.js',(err,data)=>{
  //对文件重命名,并且移动文件

  //第一个参数是要重命名的文件,第二个文件是要移动的路径和新的名称
  if(err) console.log(err);
  console.log(data)
})

rmdir (删除文件夹)

 fs.rmdir('module',(err,data)=>{
  //删除文件夹,要删除的文件夹的必须是空的
  if(err) console.log(err);
  console.log(data)
})

unlink(删除文件)

fs.unlink('./tests.js',(err,data)=>{
   if(err)console.log(err);
   console.log('删除成功')
})
  

createReadSteam ('文件路径')(以流的方式读取文件)

const readStarm=fs.createReadStream('./tests.js');
readStarm.on('data',data=>{
   
   console.log(data.toString(),'data')
})
readStarm.on('end',()=>{
  
})

createWriteSteam (以流的方式写入内容)

 const wariteStream=fs.createWriteStream('./tests.js');
wariteStream.write('var cod=3;'); //写入内容,会覆盖掉原文件的内容
wariteStream.end();
wariteStream.on('finish',()=>{
   //监听写入完成
   console.log('写入完成')
})

管道流(读取一个文件的内容写入到另一个文件中)

  const c=fs.createReadStream('./tests.js');
const writeSteam=fs.createWriteStream('./aa.js');
c.pipe(writeSteam)

realpath (获取文件的真实路径)

   fs.realpath('./test.js',(err,data)=>{
       if(err) console.log(err);
       console.log(data);
   })