美文网首页
node js(四)

node js(四)

作者: Sun晨淏 | 来源:发表于2019-07-29 19:37 被阅读0次

    fs模块

    fs概述

    -在 NodeJS 中,所有与文件操作都是通过 fs 核心模块来实现的,包括文件目录的创建、删除、查询以及文件的读取和写入,在 fs 模块中,所有的方法都分为同步和异步两种实现,具有 sync 后缀的方法为同步方法,不具有 sync 后缀的方法为异步方法;
    - 文件描述符fd
    - 操作系统会为每个打开的文件分配一个名为文件描述符的数值标识,文件操作使用这些文件描述符来识别与追踪每个特定的文件,Window 系统使用了一个不同但概念类似的机制来追踪资源,为方便用户,NodeJS 抽象了不同操作系统间的差异,为所有打开的文件分配了数值的文件描述符。
    - 在 NodeJS 中,每操作一个文件,文件描述符是递增的,文件描述符一般从 3 开始,因为前面有 012 三个比较特殊的描述符,分别代表 process.stdin(标准输入)、process.stdout(标准输出)和 process.stderr(错误输出)
    - 标识符flag
    - NodeJS 中,标识位代表着对文件的操作方式,如可读、可写、即可读又可写等等,在下面来表示文件操作的标识位和其对应的含义
    - r 读取文件,如果文件不存在则抛出异常。
    - r+ 读取并写入文件,如果文件不存在则抛出异常。
    - rs 读取并写入文件,指示操作系统绕开本地文件系统缓存。
    - w 写入文件,文件不存在会被创建,存在则清空后写入。
    - wx 写入文件,排它方式打开。
    - w+ 读取并写入文件,文件不存在则创建文件,存在则清空后写入。
    - wx+ 和 w+ 类似,排他方式打开。
    - a 追加写入,文件不存在则创建文件。
    - ax 与 a 类似,排他方式打开。
    - a+ 读取并追加写入,不存在则创建。
    - ax+ 与 a+ 类似,排他方式打开。

    • 文件读取

      • 同步读取文件readFileSync,有两个参数

        • 第一个参数为读取文件的路径或文件描述符;

        • 第二个参数为 options,默认值为 null,其中有 encoding(编码,默认为 null)和 flag(标识位,默认为 r),也可直接传入 encoding;

        • 返回值为文件的内容,如果没有 encoding,返回的文件内容为 Buffer,如果有按照传入的编码解析。

        • 例:

        • const fs = require("fs");
          
          let resultB = fs.readFileSync("./a.txt");
          let resultD = fs.readFileSync("./a.txt", "utf8");
          // 当读取的值为Buffer的时候,可以调用其toString()的方法,也可以将其转为正常的数据格式
          // console.log(resultB.toString());
          console.log(resultB); // <Buffer 68 65 6c 6c 6f 20 46 53>
          console.log(resultD); // Hello FS
          
      • 异步读取readFile, 有三个参数

        • 异步读取方法与readFileSync 的前两个参数相同,最后一个参数为回调函数,函数内有两个参数 err(错误)和 data(数据),该方法没有返回值,回调函数在读取文件成功后执行,第二个参数也可以不传,通过toString()方法解析返回的数据

        • 例:

        • const fs = require("fs");
          
          fs.readFile("a.txt", "utf8", (err, data) => {
              console.log(err); // null
              console.log(data); // Hello FS
          });
          

    相关文章

      网友评论

          本文标题:node js(四)

          本文链接:https://www.haomeiwen.com/subject/lypirctx.html