返回

fs 模块的奥妙:探索 Node.js 文件系统的强大功能

前端

一、什么是 fs 模块?

fs(filesystem)模块是 Node.js 核心模块之一,它提供了本地文件的读写能力。基本上,所有与文件的操作都是通过 fs 核心模块实现。导入 fs 模块的语法非常简单:

const fs = require('fs');

二、fs 模块的常用方法

1. 同步读写方法

  • fs.readFileSync(path, options):同步读取文件内容,返回一个字符串。
  • fs.writeFileSync(path, data, options):同步写入文件内容。

2. 异步读写方法

  • fs.readFile(path, options, callback):异步读取文件内容,将结果通过回调函数返回。
  • fs.writeFile(path, data, options, callback):异步写入文件内容,将结果通过回调函数返回。

3. 其他常用方法

  • fs.exists(path, callback):检查文件或目录是否存在。
  • fs.stat(path, callback):获取文件或目录的元数据。
  • fs.mkdir(path, options, callback):创建目录。
  • fs.rmdir(path, callback):删除目录。
  • fs.unlink(path, callback):删除文件。
  • fs.rename(oldPath, newPath, callback):重命名文件或目录。

三、fs 模块的流操作

fs 模块还提供了对流的支持,我们可以使用流来实现更灵活的文件读写操作。流是一个数据源,它可以产生一个连续的数据流。我们可以使用流来读取文件、写入文件、管道数据等。

1. 创建流

const fs = require('fs');

const readableStream = fs.createReadStream('input.txt');
const writableStream = fs.createWriteStream('output.txt');

2. 使用流

我们可以使用 pipe() 方法将可读流和可写流连接起来,这样可读流产生的数据就会流向可写流。

readableStream.pipe(writableStream);

四、fs 模块的异步编程

fs 模块的大多数方法都是异步的,这意味着它们不会阻塞事件循环。当我们调用一个异步方法时,Node.js 不会等待它完成,而是继续执行其他任务。当异步方法完成时,Node.js 会调用我们提供的回调函数,将结果作为参数传递给回调函数。

fs.readFile('input.txt', 'utf-8', (err, data) => {
  if (err) {
    console.error(err);
  } else {
    console.log(data);
  }
});

结语

fs 模块是 Node.js 中一个非常重要的模块,它提供了对文件系统进行读写、创建、删除、重命名等操作的强大功能。通过本文的介绍,您已经对 fs 模块有了初步的了解。如果您想了解更多关于 fs 模块的内容,可以查阅 Node.js 官方文档或其他相关资料。