首页IT科技node-modules文件夹可以删吗(node里的filesystem模块文件读写操作详解)

node-modules文件夹可以删吗(node里的filesystem模块文件读写操作详解)

时间2025-07-30 14:36:50分类IT科技浏览4234
导读:一、是什么 fs(filesystem),该模块提供本地文件的读写能力,基本上是POSIX文件操作命令的简单包装...

一               、是什么

fs(filesystem)              ,该模块提供本地文件的读写能力                      ,基本上是POSIX文件操作命令的简单包装

可以说       ,所有与文件的操作都是通过fs核心模块实现

导入模块如下:

const fs = require(fs);

这个模块对所有文件系统操作提供异步(不具有sync后缀)和同步(具有sync后缀)两种操作方式              ,而供开发者选择

二                     、文件知识

在计算机中有关于文件的知识:

权限位 mode 标识位 flag 文件描述为 fd

权限位 mode

针对文件所有者       、文件所属组        、其他用户进行权限分配                      ,其中类型又分成读                     、写和执行       ,具备权限位4              、2        、1       ,不具备权限为0

如在linux查看文件权限位:

drwxr-xr-x 1 PandaShen 197121 0 Jun 28 14:41 core -rw-r--r-- 1 PandaShen 197121 293 Jun 23 17:44 index.md

在开头前十位中                      ,d为文件夹               ,-为文件       ,后九位就代表当前用户                      、用户所属组和其他用户的权限位                     ,按每三位划分               ,分别代表读(r)              、写(w)和执行(x),- 代表没有当前位对应的权限

标识位

标识位代表着对文件的操作方式                     ,如可读、可写                      、即可读又可写等等                      ,如下表所示:

符号 含义 r 读取文件,如果文件不存在则抛出异常              。 r+ 读取并写入文件              ,如果文件不存在则抛出异常                      。 rs 读取并写入文件                      ,指示操作系统绕开本地文件系统缓存       。 w 写入文件       ,文件不存在会被创建              ,存在则清空后写入              。 wx 写入文件                      ,排它方式打开                      。 w+ 读取并写入文件       ,文件不存在则创建文件       ,存在则清空后写入       。 wx+ 和 w+ 类似                      ,排他方式打开       。 a 追加写入               ,文件不存在则创建文件                      。 ax 与 a 类似       ,排他方式打开               。 a+ 读取并追加写入                     ,不存在则创建       。 ax+ 与 a+ 类似               ,排他方式打开                     。

文件描述为 fd

操作系统会为每个打开的文件分配一个名为文件描述符的数值标识,文件操作使用这些文件描述符来识别与追踪每个特定的文件

Window系统使用了一个不同但概念类似的机制来追踪资源                     ,为方便用户                      ,NodeJS抽象了不同操作系统间的差异,为所有打开的文件分配了数值的文件描述符

在NodeJS中              ,每操作一个文件                      ,文件描述符是递增的       ,文件描述符一般从3开始              ,因为前面有0                     、1、2三个比较特殊的描述符                      ,分别代表process.stdin(标准输入)               、process.stdout(标准输出)和process.stderr(错误输出)

三                     、方法

下面针对fs模块常用的方法进行展开:

文件读取 文件写入 文件追加写入 文件拷贝 创建目录

文件读取

fs.readFileSync

同步读取       ,参数如下:

第一个参数为读取文件的路径或文件描述符 第二个参数为 options       ,默认值为 null                      ,其中有 encoding(编码               ,默认为 null)和 flag(标识位       ,默认为 r)                     ,也可直接传入 encoding

结果为返回文件的内容

const fs = require("fs"); let buf = fs.readFileSync("1.txt"); let data = fs.readFileSync("1.txt", "utf8"); console.log(buf); // <Buffer 48 65 6c 6c 6f> console.log(data); // Hello
fs.readFile

异步读取方法readFile与readFileSync的前两个参数相同               ,最后一个参数为回调函数,函数内有两个参数err(错误)和data(数据)                     ,该方法没有返回值                      ,回调函数在读取文件成功后执行

const fs = require("fs"); fs.readFile("1.txt", "utf8", (err, data) => { if(!err){ console.log(data); // Hello } });

文件写入

writeFileSync

同步写入,有三个参数:

第一个参数为写入文件的路径或文件描述符 第二个参数为写入的数据              ,类型为 String 或 Buffer 第三个参数为 options                      ,默认值为 null       ,其中有 encoding(编码              ,默认为 utf8)       、 flag(标识位                      ,默认为 w)和 mode(权限位       ,默认为 0o666)       ,也可直接传入 encoding
const fs = require("fs"); fs.writeFileSync("2.txt", "Hello world"); let data = fs.readFileSync("2.txt", "utf8"); console.log(data); // Hello world
writeFile

异步写入                      ,writeFile与writeFileSync的前三个参数相同               ,最后一个参数为回调函数       ,函数内有一个参数err(错误)                     ,回调函数在文件写入数据成功后执行

const fs = require("fs"); fs.writeFile("2.txt", "Hello world", err => { if (!err) { fs.readFile("2.txt", "utf8", (err, data) => { console.log(data); // Hello world }); } });

文件追加写入

appendFileSync

参数如下:

第一个参数为写入文件的路径或文件描述符 第二个参数为写入的数据               ,类型为 String 或 Buffer 第三个参数为 options,默认值为 null                     ,其中有 encoding(编码                      ,默认为 utf8)               、 flag(标识位,默认为 a)和 mode(权限位              ,默认为 0o666)                      ,也可直接传入 encoding
const fs = require("fs"); fs.appendFileSync("3.txt", " world"); let data = fs.readFileSync("3.txt", "utf8");
appendFile

异步追加写入方法appendFile与appendFileSync的前三个参数相同       ,最后一个参数为回调函数              ,函数内有一个参数err(错误)                      ,回调函数在文件追加写入数据成功后执行

const fs = require("fs"); fs.appendFile("3.txt", " world", err => { if (!err) { fs.readFile("3.txt", "utf8", (err, data) => { console.log(data); // Hello world }); } });

文件拷贝

copyFileSync

同步拷贝

const fs = require("fs"); fs.copyFileSync("3.txt", "4.txt"); let data = fs.readFileSync("4.txt", "utf8"); console.log(data); // Hello world
copyFile

异步拷贝

const fs = require("fs"); fs.copyFile("3.txt", "4.txt", () => { fs.readFile("4.txt", "utf8", (err, data) => { console.log(data); // Hello world }); });

创建目录

mkdirSync

同步创建       ,参数为一个目录的路径       ,没有返回值                      ,在创建目录的过程中               ,必须保证传入的路径前面的文件目录都存在       ,否则会抛出异常

// 假设已经有了 a 文件夹和 a 下的 b 文件夹 fs.mkdirSync("a/b/c")
mkdir

异步创建                     ,第二个参数为回调函数

fs.mkdir("a/b/c", err => { if (!err) console.log("创建成功"); });

以上就是node里的filesystem模块文件读写操作详解的详细内容               ,更多关于node filesystem文件读写操作的资料请关注本站其它相关文章!

声明:本站所有文章,如无特殊说明或标注                     ,均为本站原创发布               。任何个人或组织                      ,在未征得本站同意时,禁止复制                     、盗用       、采集        、发布本站内容到任何网站                     、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益              ,可联系我们进行处理                     。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
window10无法调节音量,怎么搞啊(win11系统的电脑音量无法调节怎么办? win11添加音量调节的技巧) windows11升级绿屏幕(win11绿屏怎么办 更新win11绿屏重启问题解决方法)