Node.js 文件系统 (FS)

2024 年 8 月 29 日 | 阅读 3 分钟

在 Node.js 中,文件 I/O 通过简单的 POSIX 标准函数封装提供。Node 文件系统 (fs) 模块可以使用以下语法导入:

语法

Node.js FS 读取文件

fs 模块中的每个方法都有同步和异步形式。

异步方法将最后一个参数作为完成函数回调。异步方法优先于同步方法,因为它从不阻塞程序执行,而同步方法会阻塞。

让我们举个例子

创建一个名为 "input.txt" 的文本文件,内容如下:

文件:input.txt

让我们举一个例子,创建一个名为 "main.js" 的 JavaScript 文件,其中包含以下代码:

文件:main.js

打开 Node.js 命令提示符并运行 main.js

Node.js file system 1

Node.js 打开文件

语法

以下是异步模式下打开文件的方法的语法:

参数解释

以下是对上述语法中使用的参数的说明:

path:这是一个字符串,包含带路径的文件名。

flags:标志指定要打开文件的行为。所有可能的值都在下面列出。

mode:这会设置文件模式(权限和粘位),但仅在创建文件时。默认值为 0666,可读写。

callback:这是回调函数,它有两个参数 (err, fd)。

Node.js 读/写标志

以下是读/写操作的标志列表:

旗帜描述
r以读模式打开文件。如果文件不存在,则会引发异常。
r+以读写模式打开文件。如果文件不存在,则会引发异常。
rs以同步模式打开文件进行读取。
rs+以读写模式打开文件,并告诉操作系统以同步方式打开它。有关使用此标志的注意事项,请参阅 'rs' 的说明。
w以写模式打开文件。如果文件不存在,则创建文件;如果文件存在,则截断文件。
wx与 'w' 相同,但如果路径存在则失败。
w+以读写模式打开文件。如果文件不存在,则创建文件;如果文件存在,则截断文件。
wx+与 'w+' 相同,但如果路径存在则失败。
a以追加模式打开文件。如果文件不存在,则创建文件。
ax与 'a' 相同,但如果路径存在则失败。
a+以读写模式打开文件。如果文件不存在,则创建文件。
ax+以读写模式打开文件。如果文件不存在,则创建文件。

创建一个名为 "main.js" 的 JavaScript 文件,其中包含以下代码,以读写模式打开 input.txt 文件。

文件:main.js

打开 Node.js 命令提示符并运行 main.js

Node.js file system 2

Node.js 文件信息方法

语法

以下是获取文件信息的方法的语法:

参数解释

Path:这是一个字符串,包含带路径的文件名。

Callback:这是回调函数,它有两个参数 (err, stats),其中 stats 是 fs.Stats 类型的对象。

Node.js fs.Stats 类方法

方法描述
stats.isfile()如果文件类型为普通文件,则返回 true。
stats.isdirectory()如果文件类型为目录,则返回 true。
stats.isblockdevice()如果文件类型为块设备,则返回 true。
stats.ischaracterdevice()如果文件类型为字符设备,则返回 true。
stats.issymboliclink()如果文件类型为符号链接,则返回 true。
stats.isfifo()如果文件类型为 fifo,则返回 true。
stats.issocket()如果文件类型为套接字,则返回 true。

让我们举一个例子,创建一个名为 main.js 的 JavaScript 文件,其中包含以下代码:

文件:main.js

现在打开 Node.js 命令提示符并运行 main.js

Node.js file system 3
下一个主题Node.js 路径