当前位置:   article > 正文

Node学习(二)02-node核心模块之fs模块——fs.readFile()-异步读取文件& fs.writeFile()-异步写入文件-会覆盖文件中原内容 & if写法之return和throw

fs.readfile

Node学习(二)02-node核心模块之fs模块——fs.readFile()-异步读取文件 & fs.writeFile() – 异步写入文件-会覆盖掉文件中原有的内容 & if多种写法之return和throw

2.3.2 fs模块

文件操作模块


  • 使用方法

    • 加载模块

      // 引入模块,引入模块的时候,可以使用var、let,但是建议使用const,因为我们不希望它改变
      const fs = require('fs');
      
      • 1
      • 2
    • 调用fs模块的方法,下面列举fs模块中的常用方法

      API作用备注
      fs.access(path, callback)判断路径是否存在
      fs.appendFile(file, data, callback)向文件中追加内容
      fs.copyFile(src, callback)复制文件
      fs.mkdir(path, callback)创建目录
      fs.readDir(path, callback)读取目录列表
      fs.rename(oldPath, newPath, callback)重命名文件/目录
      fs.rmdir(path, callback)删除目录只能删除空目录
      fs.stat(path, callback)获取文件/目录信息
      fs.unlink(path, callback)删除文件
      fs.watch(filename[, options][, listener])监视文件/目录
      fs.watchFile(filename[, options], listener)监视文件
示例

fs模块-效果

在这里插入图片描述

新建文件 test.txt

hello world
  • 1

同层级目录中,新建如下文件

示例01、fs模块.js

  • readFile – 异步读取文件
    // fs 就是文件系统,所以fs模块的API都和文件或目录相关
    const fs = require('fs');
    
    // 调用fs的方法
    
    // 1. readFile -- 异步读取文件
    /**
     * fs.readFile('被读取的文件路径', [utf-8], (err, data) => {
     *     err : 表示错误信息,如果没有错误,err的值是null
     *     data: data就是读取的结果
     * });
     */
    fs.readFile('test.txt', (err, data) => {
        if (err) {
            // 说明有错误发生
            console.log(err);
        } else {
            console.log(data); // <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>
            console.log(data.toString()); // hello world 等价下方
        }
    });
    
    fs.readFile('./test.txt', 'utf-8', (err, data) => {
        if (err) {
            // 说明有错误发生
            console.log(err);
        } else {
            console.log(data); // hello world   等价上方
        }
    });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

新建文件 abc.txt

nice to meet you
  • 1

同层级目录中,新建如下文件

示例02、fs模块.js

  • 会覆盖掉文件中原有的内容
    const fs = require('fs');
    
    // fs.writeFile() -- 异步写入文件(会覆盖掉文件中原有的内容;如果文件不存在,会自动创建文件)
    
    /**
     * fs.writeFile('文件路径', '写入的内容', (err) => {
     *     err : 错误信息,如果没有错误,err的值为null
     * });
     */
    
    fs.writeFile('./abc.txt', 'hello你好', (err) => {
        if (err) {
            console.log(err);
        } else {
            console.log('写入成功')
        }
    });
    
    fs.writeFile('./abc.txt', 'nice to meet you', (err) => {
        // 如果有错误,则输出错误信息,并终止程序执行
        if (err) {  // 写法一
            console.log(err);
            return
        }
        if (err) {  // 写法二
            return console.log(err);  
        }
        if (err) return console.log(err);  // 写法三
        // 如果没有错误,不能进入上面的if区间,输出 “写入成功”
        console.log('写入成功');
    });
    
    fs.writeFile('./abc.txt', 'nice to meet you', (err) => {
        // 如果有错误,则输出(抛出)错误信息,并终止程序执行
        if (err) throw err;  // 写法四
        // 如果没有错误,不能进入上面的if区间,输出 “写入成功”
        console.log('写入成功');
    });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
实例

1

    // readFile -- 异步读取文件
    /**
     * fs.readFile('被读取的文件路径', [utf-8], (err, data) => {
     *     err : 表示错误信息,如果没有错误,err的值是null
     *     data: data就是读取的结果
     * });
     */
    // fs.readFile('test.txt', (err, data) => {
    //     if (err) {
    //         // 说明有错误发生
    //         console.log(err);
    //     } else {
    //         console.log(data); // <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>
    //         console.log(data.toString()); // hello world
    //     }
    // });
    
    fs.readFile('./test.txt', 'utf-8', (err, data) => {
        if (err) {
            // 说明有错误发生
            console.log(err);
        } else {
            console.log(data); // hello world
        }
    });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

2

   // writeFile -- 异步写入文件
   /**
    * fs.writeFile('文件路径', '写入的内容', (err) => {
    *     err : 错误信息,如果没有错误,err的值为null
    * });
    */
   
   //  fs.writeFile('./abc.txt', 'hello你好', (err) => {
   //      if (err) {
   //          console.log(err);
   //      } else {
   //          console.log('写入成功')
   //      }
   //  });
   
   /* fs.writeFile('./abc.txt', 'nice to meet you', (err) => {
       // 如果有错误,则输出错误信息,并终止程序执行
       if (err)  return console.log(err);
       // 如果没有错误,不能进入上面的if区间,输出 “写入成功”
       console.log('写入成功');
   }); */
   
   fs.writeFile('./abc.txt', 'nice to meet you', (err) => {
       // 如果有错误,则输出(抛出)错误信息,并终止程序执行
       if (err) throw err;
       // 如果没有错误,不能进入上面的if区间,输出 “写入成功”
       console.log('写入成功');
   });
   ```

('./abc.txt', 'nice to meet you', (err) => {
       // 如果有错误,则输出(抛出)错误信息,并终止程序执行
       if (err) throw err;
       // 如果没有错误,不能进入上面的if区间,输出 “写入成功”
       console.log('写入成功');
   });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/283476
推荐阅读
相关标签
  

闽ICP备14008679号