Node.js 中的 fs
模块(文件系统模块)提供了与文件系统交互的 API。通过这个模块,开发者可以读取、写入、监视、操作文件以及目录。以下是对 fs
模块的一些基本理解和常用方法的介绍:
基本理解
- 异步与同步 :
fs
模块提供了同步(sync)和异步(async)的方法。同步方法会阻塞 Node.js 事件的循环,直到操作完成,而异步方法则不会。因此,在处理 I/O 操作时,通常建议使用异步方法以避免阻塞事件循环。 - 错误处理 :所有的
fs
方法都有一个错误优先的回调函数,其第一个参数总是err
(如果有错误的话)。在异步操作中,如果发生错误,这个错误会被传递给回调函数;在同步操作中,如果发生错误,会抛出一个异常。 - 路径:当处理文件或目录时,你需要提供文件或目录的路径。这可以是相对路径(相对于当前工作目录)或绝对路径。
常用方法
-
读取文件:
fs.readFile(path[, options], callback)
:异步读取文件内容。fs.readFileSync(path[, options])
:同步读取文件内容。
-
写入文件:
fs.writeFile(file, data[, options], callback)
:异步将数据写入文件,如果文件已经存在则替换它。fs.writeFileSync(file, data[, options])
:同步将数据写入文件,如果文件已经存在则替换它。fs.appendFile(file, data[, options], callback)
:异步将数据追加到文件,如果文件不存在则创建它。fs.appendFileSync(file, data[, options])
:同步将数据追加到文件,如果文件不存在则创建它。
-
删除文件/目录:
fs.unlink(path, callback)
:异步删除文件。fs.unlinkSync(path)
:同步删除文件。fs.rmdir(path[, options], callback)
:异步删除目录。fs.rmdirSync(path[, options])
:同步删除目录。
-
目录操作:
fs.readdir(path[, options], callback)
:异步读取目录的内容。fs.readdirSync(path[, options])
:同步读取目录的内容。fs.mkdir(path[, options], callback)
:异步创建目录。fs.mkdirSync(path[, options])
:同步创建目录。
-
检查文件/目录是否存在:
fs.exists(path, callback)
(已弃用,但仍在一些老代码中可见):异步检查文件或目录是否存在。但请注意,这个方法已被弃用,建议使用fs.access()
。fs.access(path[, mode], callback)
:异步检查调用者是否可以对指定的文件或目录执行指定的操作。fs.existsSync(path)
:同步检查文件或目录是否存在。
-
文件信息:
fs.stat(path[, options], callback)
:异步获取文件或目录的状态。fs.statSync(path[, options])
:同步获取文件或目录的状态。fs.lstat(path[, options], callback)
:与fs.stat()
类似,但在符号链接时返回链接本身的信息,而不是链接指向的文件或目录的信息。
-
监视文件/目录:
fs.watch(filename[, options][, listener])
:监视文件或目录的变化。当文件或目录发生变化时,会触发一个事件。