Node.js fs模块文件与目录读写操作详解

作者:墨池时间:2026-10-22 09:49:10浏览:487

本文详细介绍Node.js中fs模块的文件与目录操作方法。涵盖readFile读取、writeFile写入及追加模式、mkdir创建目录、readdir读取目录、unlink删除文件和rmdir删除空文件夹的具体用法与参数说明,附带完整代码示例,帮助开发者掌握Node.js基础IO操作。

Node.js fs模块文件与目录读写操作详解

本文通过具体实例,讲解如何利用Node.js中的fs模块实现对系统文件和目录的读写操作,供读者参考学习。

使用fs模块前需先引入该模块,由于fs是Node.js内置模块,直接引入即可使用。


var fs = require('fs');

1. 读取文件:readFile方法的使用

通过fs.readFile(filename,[option],callback) 方法可以读取文件内容。

该方法主要包含以下参数:

filename String 文件名 option Object encoding String |null default=null flag String default='r' callback Function


// 设置编码格式
fs.readFile('./test.txt', 'utf-8', function(err, data) {
  // 读取文件失败/错误
  if (err) {
    throw err;
  }
  // 读取文件成功
  console.log('utf-8: ', data.toString());
});

2. 写入文件:writeFile方法的使用

使用fs.writeFile(filename,data,[options],callback)方法将内容写入文件。

该方法包含以下参数说明:

filename String 文件名 data String|buffer option Object encoding String |null default='utf-8' mode Number default=438 (即八进制的0666) flag String default='w' callback Function


var fs = require('fs'); // 引入fs模块
// 写入文件内容(如果文件不存在会创建一个文件)
// 写入时会先清空文件
fs.writeFile('./test2.txt', 'test test', function(err) {
  if (err) {
    throw err;
  }
  console.log('Saved.');
  // 写入成功后读取测试
  fs.readFile('./test2.txt', 'utf-8', function(err, data) {
    if (err) {
      throw err;
    }
    console.log(data);
  });
});

默认情况下,flag参数为'w'表示写入,这会清空文件原有内容。若需追加内容,可传递flag参数进行设置。

flag参数的常见取值包括:'r'代表读取文件,'w'代表写文件,'a'代表追加文件。


var fs = require('fs'); // 引入fs模块
// 写入文件内容(如果文件不存在会创建一个文件)
// 传递了追加参数 { 'flag': 'a' }
fs.writeFile('./test2.txt', 'test test', { 'flag': 'a' }, function(err) {
  if (err) {
    throw err;
  }
  console.log('Saved.');
  // 写入成功后读取测试
  fs.readFile('./test2.txt', 'utf-8', function(err, data) {
    if (err) {
      throw err;
    }
    console.log(data);
  });
});

3. 创建目录:mkdir方法的使用

使用fs.mkdir(path,[mode],callback)方法创建目录。其中path参数指定需要创建的目录路径,[mode]参数指定目录权限(默认为0777),callback为回调函数。


var fs = require('fs'); // 引入fs模块
// 创建 newdir 目录
fs.mkdir('./newdir', function(err) {
  if (err) {
    throw err;
  }
  console.log('make dir success.');
});

4. 读取目录:readdir方法


var fs = require('fs'); // 引入fs模块
fs.readdir('./newdir', function(err, files) {
  if (err) {
    throw err;
  }
  // files是一个数组
  // 每个元素是此目录下的文件或文件夹的名称
  console.log(files);
});

5. 删除文件:unlink方法


var fs = require('fs'); // 引入fs模块
fs.unlink('./newfile.txt', function(err) {
  if (err) {
    console.log(err);
    return false;
  }
  console.log("success");
});

6. 删除空文件夹:rmdir方法


var fs = require('fs'); // 引入fs模块
fs.rmdir('./newdir', function(err) {
  if (err) {
    console.log(err);
    return false;
  }
  console.log("success");
});

希望本文介绍的内容能对Node.js程序设计有所帮助。

作者最新文章