fs方法的使用

发布时间 2023-08-01 16:17:11作者: 奔跑的哈密瓜

  先创建一个xxx.js文件,接下来的内容都默认写在这个js文件中。在文件夹中找到xxx.js文件所在目录,在文件目录栏进行cmd操作,然后输入node .\xxx.js便可以运行这个文件了。

  1. fs.writeFile -----------  写入文件

    fs.writeFile(文件路径要写入的文件内容回调函数) 接收三个参数。示例如下

const fs = require('fs');//引入fs
fs.writeFile('./lalala.txt','银鞍照白马,飒沓如流星---李白',function(err){
    if(err){//判断是否有错误,存在错误就进行报错返回
        return console.log("文件写入失败")
    }
    console.log("文件写入成功")
})

    这段代码的意思为我在xxx.js文件所在目录下,将银鞍照白马,飒沓如流星---李白写入了lalala.txt文件中,如果当前目录下不存在这个txt文件便会自动创建一个,值得注意的是写入的内容会覆盖txt文件中原有的内容。

  2. fs.stat        ----------- 获取文件信息

     fs.stat(需要获取的文件路径,回调函数)接收两个参数。示例如下

fs.stat("./lalala.txt",function(err,state){
    if(err){
        return  console.log("获取文件信息失败")
    }
    console.log(state);
    console.log("是否为文件"+state.isFile())
})

    返回信息为  

 

    上述代码中,state为文件的信息(并不是文件中的内容),其中还提供了几种方法来进行判断验证,可根据自己需要来进行使用。如下

  3. fs.readFile -----------  读取文件

     fs.readFile(需要读取的文件路径读取文件时采用的编码格式(默认为"utf8")回调函数)接收三个参数,第二个参数可以不写。示例如下

const fs = require('fs')
    fs.readFile('./lalala.txt', function (err, data) {
      if (err) {//如果存在,则表示读取文件失败
        console.log('读取文件失败了')
      } else {
        console.log(data.toString())//成功将会打印出来文件中的数据
      }
    })

    这段代码的意思为我读取了xxx.js文件所在目录下的lalala.txt文件,其中有我在第一个方法中写入的银鞍照白马,飒沓如流星---李白。值得注意的是当我们要读取的文件不存在时,也会进入报错中。

  4. fs.mkdir     -----------  创建目录

    fs.mkdir(需要创建的目录{是否以递归形式创建目录(默认recursive:false),目录权限(存在默认值,一般不需要使用)}回调删除)接收三个参数。示例如下

fs.mkdir('aaa/ccc',{recursive:true},function(err){
    if(err){
        return console.log("文件目录创建失败")
    }
    console.log("文件目录创建成功")
})

    上述代码,可以发现我使用了{recursive:true},这个是因为,我想要在xxx.js所在目录下创建aaa目录后继续创建ccc目录,这两个目录都是不存在的。如果不使用recursive:true,将会报错;默认值false下只能生成一级目录,如果要生成多级目录就会报错。

  5. fs.readdir   ----------- 读取目录

    fs.readdir(需要读取的目录路径回调函数)接受两个参数。示例如下

fs.readdir('aaa/',function(err,files){
    if(err){
        return console.log("文件目录读取失败")
    }
    files.forEach((file)=>{
        console.log(file);
    })
})

    上述代码,我想要获取xxx.js所在目录下的aaa目录下的文件,其中files为查询出来的文件列表。

  6. fs.rmdir   -----------  删除目录

    fs.rmdir(需要删除的目录回调函数)接收两个参数。示例如下

fs.rmdir("aaa",function(err){
    if(err){
        return console.log("目录删除失败")
    }
    console.log("目录删除成功")
})

    上述代码指我想要删除xxx.js文件所在目录下的aaa目录。需要注意的是,这个方法删除的目录下不能存在任何东西,比如我需要删除的aaa目录下存在文件或者文件夹,则会删除失败。

  7. fs.unlink    -----------   删除文件

    fs.unlink(需要删除的文件路径回调函数)接收两个参数。示例如下

const fs = require('fs')
fs.unlink('./lalala.txt',function(err){
    if(err){
        return console.log("文件删除报错")
    }
    console.log("文件删除成功")
})

    这段代码的意思为我删除了xxx.js文件所在目录下的lalala.txt文件。如果所删除的文件目录不存在,将会进入到报错中。