当前位置: 首页 > article >正文

node.js内置模块之---fs 模块

fs模块的作用

Node.js 中,fs(文件系统)模块提供了与文件系统交互的功能,允许你读取、写入、更新和删除文件,以及操作文件和目录。这个模块是 Node.js 的核心模块之一,主要用于服务器端处理文件系统相关的操作。

fs模块api

1、读取文件

  • fs.readFile(path, options, callback):异步读取文件内容。
  • fs.readFileSync(path, options):同步读取文件内容。
const fs = require('fs');

// 异步读取文件
fs.readFile('example.txt', 'utf8', (err, data) => {
  if (err) throw err;
  console.log(data);
});

// 同步读取文件
const data = fs.readFileSync('example.txt', 'utf8');
console.log(data);

2、写入文件

  • fs.writeFile(path, data, options, callback):异步写入文件。如果文件不存在则创建文件,文件存在则覆盖。
  • fs.writeFileSync(path, data, options):同步写入文件。
// 异步写入文件
fs.writeFile('output.txt', 'Hello, Node.js!', (err) => {
  if (err) throw err;
  console.log('File has been written!');
});

// 同步写入文件
fs.writeFileSync('output.txt', 'Hello, Node.js!');
console.log('File has been written!');

3、追加文件内容

  • fs.appendFile(path, data, callback):异步追加内容到文件末尾。
  • fs.appendFileSync(path, data):同步追加内容到文件末尾。
// 异步追加文件内容
fs.appendFile('output.txt', '\nThis is an appended text.', (err) => {
  if (err) throw err;
  console.log('Content appended!');
});

// 同步追加文件内容
fs.appendFileSync('output.txt', '\nThis is an appended text.');
console.log('Content appended!');

4、删除文件

  • fs.unlink(path, callback):异步删除文件。
  • fs.unlinkSync(path):同步删除文件。
// 异步删除文件
fs.unlink('output.txt', (err) => {
  if (err) throw err;
  console.log('File deleted!');
});

// 同步删除文件
fs.unlinkSync('output.txt');
console.log('File deleted!');

5、创建目录

  • fs.mkdir(path, options, callback):异步创建目录。
  • fs.mkdirSync(path, options):同步创建目录。
// 异步创建目录
fs.mkdir('newDir', { recursive: true }, (err) => {
  if (err) throw err;
  console.log('Directory created!');
});

// 同步创建目录
fs.mkdirSync('newDir', { recursive: true });
console.log('Directory created!');

6、删除目录

  • fs.rmdir(path, callback):异步删除空目录。
  • fs.rmdirSync(path):同步删除空目录。
// 异步删除目录
fs.rmdir('newDir', (err) => {
  if (err) throw err;
  console.log('Directory removed!');
});

// 同步删除目录
fs.rmdirSync('newDir');
console.log('Directory removed!');

7、检查文件或目录是否存在

  • fs.existsSync(path):同步检查文件或目录是否存在。
  • fs.exists(path, callback):异步检查文件或目录是否存在(已废弃,建议使用 fs.access)。
// 同步检查文件是否存在
if (fs.existsSync('example.txt')) {
  console.log('File exists!');
}

// 异步检查文件是否存在
fs.access('example.txt', fs.constants.F_OK, (err) => {
  if (err) {
    console.log('File does not exist');
  } else {
    console.log('File exists');
  }
});

8、获取文件信息

  • fs.stat(path, callback):异步获取文件或目录的信息。
  • fs.statSync(path):同步获取文件或目录的信息。
// 异步获取文件信息
fs.stat('example.txt', (err, stats) => {
  if (err) throw err;
  console.log(stats);
});

// 同步获取文件信息
const stats = fs.statSync('example.txt');
console.log(stats);

9、文件目录读取

  • fs.readdir(path, callback):异步读取目录内容。
  • fs.readdirSync(path):同步读取目录内容。
// 异步读取目录内容
fs.readdir('./', (err, files) => {
  if (err) throw err;
  console.log(files);
});

// 同步读取目录内容
const files = fs.readdirSync('./');
console.log(files);

主要方法总结:

  • 异步方法(带回调函数)用于非阻塞 I/O 操作,适合大多数场景。
  • 同步方法(不带回调函数)会阻塞程序执行,通常用于脚本或小型程序中。

注意事项:

  • 使用 异步方法 可以提高应用的性能,尤其是在处理大量文件或进行文件 I/O 时。
  • 对于 同步方法,如果程序中的某个文件操作很慢,它会阻塞整个事件循环,可能导致性能问题。

应用场景:

  • 读取配置文件、日志文件。
  • 存储用户上传的文件。
  • 管理文件系统中的数据(如备份、删除、更新文件等)。


http://www.kler.cn/a/470468.html

相关文章:

  • 【Linux】文件的压缩与解压
  • UWB实操:用信号分析仪(频谱分析仪)抓取UWB频域的图像
  • Vue3 + Vite + Electron + Ts 项目快速创建
  • C# 检查一个字符串是否是科学计数法格式字符串 如 1.229266E+01
  • QPainter,QPen,QBrush详解
  • C语言 扫雷程序设计
  • WebSocket底层原理及 java 应用
  • 考研助手|基于SSM+vue的考研助手系统的设计与实现(源码+数据库+文档)
  • NebulaGraph学习笔记-自定义SessionPool
  • 「Mac畅玩鸿蒙与硬件52」UI互动应用篇29 - 模拟火车票查询系统
  • 系统思考—变革之舞
  • 【C++】1139:整理药名
  • garak - 开源的 LLMs 漏洞扫描工具
  • Windows系统下FFmpeg4.4的环境搭建(二)
  • 基于 Python 的大学教室资源管理系统的设计与实现
  • Edge SCDN高效防护与智能加速
  • jenkins入门3 --执行一个小demo
  • Lua语言的语法糖
  • rtsp rtp:missed 1 packects
  • 使用插件生成 Mybatis 实体类及接口
  • 深度解析Linux中的make/Makefile的使用方法
  • 算法的学习笔记—不用常规控制语句求 1 到 n 的和
  • Innodisk iSMART V6使用说明_SSD还能用多久?已经读写了多少次数?……
  • 依据多波段栅格数据进行建筑统计操作(基于ArcGIS操作)
  • Nginx linux安装步骤(超详细)
  • Flink DataSet API