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

nodejs文件读写操作完整版

在Node.js中,文件操作是非常常见的任务,涉及到读取文件、写入文件、创建文件、删除文件等。Node.js提供了几个内置的模块来帮助我们进行这些操作,最常用的两个模块是fs(文件系统)和path

1. 使用fs模块

fs模块是Node.js的核心模块,用于处理文件系统的操作。

读取文件

使用fs.readFile()方法可以异步地读取文件内容。

const fs = require('fs');fs.readFile('example.txt', 'utf8', (err, data) => {if (err) {console.error(err);return;}console.log(data);
});

或者使用fs.promises.readFile()方法进行Promise风格的读取。

const fs = require('fs').promises;async function readFile() {try {const data = await fs.readFile('example.txt', 'utf8');console.log(data);} catch (err) {console.error(err);}
}readFile();
写入文件

使用fs.writeFile()方法可以异步地写入文件内容。如果文件不存在,它会被创建。

const fs = require('fs');fs.writeFile('example.txt', 'Hello, Node.js!', (err) => {if (err) {console.error(err);return;}console.log('File has been written.');
});

或者使用fs.promises.writeFile()方法进行Promise风格的写入。

const fs = require('fs').promises;async function writeFile() {try {await fs.writeFile('example.txt', 'Hello, Node.js!');console.log('File has been written.');} catch (err) {console.error(err);}
}writeFile();
创建文件和目录

使用fs.writeFile()fs.mkdir()可以创建文件或目录。fs.mkdir()用于创建目录。

const fs = require('fs');
const path = require('path');// 创建文件(如果文件已存在,则覆盖)
fs.writeFile('newfile.txt', 'New content', (err) => { /* ... */ });// 创建目录(递归地创建,如果父目录不存在)
fs.mkdir(path.join(__dirname, 'newdir'), { recursive: true }, (err) => { /* ... */ });

或者使用fs.promises版本:

const fs = require('fs').promises;
const path = require('path');async function createFileAndDir() {try {await fs.writeFile('newfile.txt', 'New content'); // 创建或覆盖文件await fs.mkdir(path.join(__dirname, 'newdir'), { recursive: true }); // 创建目录(递归)} catch (err) {console.error(err);}
}

2. 使用path模块处理路径问题

path模块用于处理文件和目录的路径。这在跨平台开发时特别有用,因为不同的操作系统使用不同的路径分隔符。

const path = require('path');
const filePath = path.join(__dirname, 'example', 'file.txt'); // 跨平台兼容的路径连接方式。例如:在Windows上是'example\file.txt',在Unix系统上是'example/file.txt'。
console.log(filePath); // 输出: /your/current/dir/example/file.txt (或 Windows 上的等效路径)

3. 使用流进行大文件处理(可选)

  • 对于大文件的读写,推荐使用流(Streams),这样可以更有效地管理内存使用。例如,使用fs.createReadStream()fs.createWriteStream()。 示例略过,请查阅Node.js文档了解详细信息。

http://www.xdnf.cn/news/19672.html

相关文章:

  • 国标落地!中小学生午休课桌椅迎来规范,聚焦舒适与耐用
  • 2025年十大主流HR管理系统全面评测:功能、价格、适用场景完整对比
  • C++ 中类模板参数的使用详解
  • webpack打包优化都有哪些
  • PromptHunt- 简单易用的AI提示词网站
  • PowerPoint和WPS演示如何循环放映PPT
  • uni-app iOS 性能监控与调试全流程:多工具协作的实战案例
  • 【Element-Plus】媒体预览模态框优化实战:从复杂到简洁的设计之路
  • 江协科技STM32学习笔记补充之002 对比介绍 I²C 和 SPI 两种常见的串行总线接口
  • hive udf 执行一次调用多次问题
  • 鸿蒙开发5.0【鸿蒙开发实践】
  • 算法模板(Java版)_前缀和与差分
  • win10虚拟机报错打不开和ubuntu空间不足
  • 深度学习中的数据增强实战:基于PyTorch的图像分类任务优化
  • 【音视频】WebRTC-NetEQ 分析
  • flutter踩坑插件:Swift架构不兼容
  • 深度学习篇---Pytorch常用优化器
  • 网络安全A模块专项练习任务十解析
  • 数据结构:单链表的应用(力扣算法题)第三章
  • ANTD-TABLE表格字段明细展示
  • (MySQL)分布式锁
  • k8s知识点汇总2
  • 【 HarmonyOS 】错误描述:The certificate has expired! 鸿蒙证书过期如何解决?
  • K8S-etcd数据库的相关操作
  • 吴恩达机器学习补充:决策树和随机森林
  • 中越跨境物流管理系统的设计与实现(原创)
  • DiffusionGPT-LLM驱动的文本生成图像系统
  • 【高等数学】第十章 重积分——第五节 含参变量的积分
  • 焦耳热技术助力顶刊研究:薄层质子交换膜实现高效水电解制氢
  • 【STM32】在链接脚本中指定DMA Buffer的地址