Node.js fs模块详解:文件系统操作实例

0 下载量 86 浏览量 更新于2024-08-31 收藏 69KB PDF 举报
"本文详细介绍了如何在Node.js中使用fs文件系统模块进行文件和目录的操作,包括文件的读取和写入。" 在Node.js中,fs(文件系统)模块是核心模块之一,它允许开发者执行基本的文件系统操作,如读取、写入、创建、删除文件和目录。fs模块提供了异步和同步两种方法,同步方法通常带有sync后缀,如`readFileSync`和`writeFileSync`。 1. 文件的整个读取 - `fs.readFile()` 是异步读取文件的方法,接收两个参数:文件路径和回调函数。回调函数有两个参数,错误对象(err)和读取到的数据(data)。如果不指定编码,`data`会是一个Buffer对象;若指定编码,如'utf8',则返回字符串。 - `fs.readFileSync()` 是同步版本,同样接收文件路径作为参数,如果指定了编码,它将返回字符串;否则返回Buffer。 2. 往文件写入数据 - `fs.writeFile()` 异步写入文件,接收三个参数:文件路径、要写入的数据和回调函数。回调函数只包含错误对象(err)。写入配置可设置编码、文件权限和文件系统标志。 - `fs.writeFileSync()` 同步写入文件,其用法与`writeFile`类似,但不会立即返回,而是等待写入完成。 3. 文件追加 - 如果你想在文件末尾添加内容,可以使用`fs.appendFile()`异步方法,或者其同步版本`fs.appendFileSync()`。 4. 文件和目录的创建与删除 - `fs.mkdir()` 创建目录,异步版本,可以使用`fs.mkdirSync()`同步创建。 - `fs.rmdir()` 删除空目录,异步版本,同步版本是`fs.rmdirSync()`。 - `fs.unlink()` 删除文件,异步,同步是`fs.unlinkSync()`。 - 若要删除非空目录,可以使用`fs.rm()`(Node.js 14.14.0+),同步版本`fs.rmSync()`。 5. 文件和目录的属性检查 - `fs.stat()` 异步获取文件或目录的状态信息,如大小、创建时间等。同步版本是`fs.statSync()`。 - `fs.access()` 可用于检查文件或目录是否存在,以及是否可读、可写等权限。异步和同步版本分别命名为`fs.access()`和`fs.accessSync()`。 6. 文件和目录的重命名和移动 - `fs.rename()` 异步重命名或移动文件,同步版本是`fs.renameSync()`。 - `fs.copyFile()` 用于复制文件,异步和同步版本分别是`fs.copyFile()`和`fs.copyFileSync()`。 7. 文件流 - 除了以上方法,fs模块还支持文件流API,如`fs.createReadStream()`和`fs.createWriteStream()`, 这些方法允许以流的形式处理文件数据,特别适合大文件操作。 在实际开发中,推荐使用异步方法,因为它们不会阻塞事件循环,有助于保持应用的响应性。但在某些情况下,如在初始化脚本中,同步方法可能是更合适的选择。在操作文件时,确保正确处理错误,并注意文件锁和并发控制,以避免数据冲突。