node.js 文件操作

ops/2025/1/21 19:57:24/

在 Node.js 中,文件操作主要通过内置的 `fs`(File System)模块来实现。

1. 读取文件

const fs = require("fs");// 异步读取文件fs.readFile("example.txt", "utf8", (err, data) => {if (err) {console.error("读取文件时出错:", err);return;}console.log("文件内容:", data);});// 同步读取文件try {const data = fs.readFileSync("example.txt", "utf8");console.log("同步读取文件内容:", data);} catch (err) {console.error("同步读取文件时出错:", err);}

2. 写入文件

const fs = require("fs");// 异步写入文件fs.writeFile("output.txt", "Hello, Node.js!", "utf8", (err) => {if (err) {console.error("写入文件时出错:", err);return;}console.log("文件写入成功");});// 同步写入文件try {fs.writeFileSync("output.txt", "Hello, Node.js!", "utf8");console.log("同步文件写入成功");} catch (err) {console.error("同步写入文件时出错:", err);}

3. 追加文件内容

const fs = require("fs");// 异步追加内容fs.appendFile("output.txt", "\nThis is additional content.", "utf8", (err) => {if (err) {console.error("追加文件时出错:", err);return;}console.log("文件追加成功");});// 同步追加内容try {fs.appendFileSync("output.txt", "\nThis is additional content.", "utf8");console.log("同步文件追加成功");} catch (err) {console.error("同步追加文件时出错:", err);}

4. 重命名文件

const fs = require("fs");// 异步重命名文件fs.rename("output.txt", "newOutput.txt", (err) => {if (err) {console.error("重命名文件时出错:", err);return;}console.log("文件重命名成功");});// 同步重命名文件try {fs.renameSync("output.txt", "newOutput.txt");console.log("同步文件重命名成功");} catch (err) {console.error("同步重命名文件时出错:", err);}

5. 删除文件

const fs = require("fs");// 异步删除文件fs.unlink("newOutput.txt", (err) => {if (err) {console.error("删除文件时出错:", err);return;}console.log("文件删除成功");});// 同步删除文件try {fs.unlinkSync("newOutput.txt");console.log("同步文件删除成功");} catch (err) {console.error("同步删除文件时出错:", err);}

6. 检查文件是否存在

const fs = require("fs");fs.exists("example.txt", (exists) => {console.log("文件是否存在:", exists);});const existsSync = fs.existsSync("example.txt");console.log("同步检查文件是否存在:", existsSync);

7. 读取目录

const fs = require("fs");// 异步读取目录fs.readdir(".", (err, files) => {if (err) {console.error("读取目录时出错:", err);return;}console.log("目录中的文件和目录:", files);});// 同步读取目录try {const files = fs.readdirSync(".");console.log("同步读取目录中的文件和目录:", files);} catch (err) {console.error("同步读取目录时出错:", err);}

8. 创建目录

const fs = require("fs");// 异步创建目录fs.mkdir("newDirectory", (err) => {if (err) {console.error("创建目录时出错:", err);return;}console.log("目录创建成功");});// 同步创建目录try {fs.mkdirSync("newDirectory");console.log("同步目录创建成功");} catch (err) {console.error("同步创建目录时出错:", err);}

9. 删除目录

const fs = require("fs");// 异步删除目录fs.rmdir("newDirectory", (err) => {if (err) {console.error("删除目录时出错:", err);return;}console.log("目录删除成功");});// 同步删除目录try {fs.rmdirSync("newDirectory");console.log("同步目录删除成功");} catch (err) {console.error("同步删除目录时出错:", err);}

10. 复制文件

const fs = require("fs");const { promisify } = require("util");// 异步复制文件const copyFile = promisify(fs.copyFile);copyFile("source.txt", "destination.txt").then(() => {console.log("文件复制成功");}).catch((err) => {console.error("复制文件时出错:", err);});// 同步复制文件try {fs.copyFileSync("source.txt", "destination.txt");console.log("同步文件复制成功");} catch (err) {console.error("同步复制文件时出错:", err);}


http://www.ppmy.cn/ops/151992.html

相关文章

uniapp时间组件

导入链接: https://ext.dcloud.net.cn/plugin?id17926

Python----Python高级(模块与包,Python基本库)

一、模块 1.1、概念 就是一个包含了Python代码的以.py为后缀的Python文件,可以被其他 Python程序导入和使用,也可以自己独立执行,里面存放着的是一组相关的函 数或者类,比如查看关键字列表时导入的keyword模块。 1.2、作用 令Py…

洛谷 P2392 kkksc03考前临时抱佛脚 刷题笔记 dfs

P2392 kkksc03考前临时抱佛脚 - 洛谷 | 计算机科学教育新生态 题目分析 左右脑双核 当我们给左右脑各自分配一道题时 消耗的时间为两者中耗时较长的一道题 我们尝试把每一道题都分配给左右脑试一试 即可遍历所有答案 关键在于答案怎么取保证耗时最短 if(step>a[x])…

ingress-nginx代理tcp使其能外部访问mysql

一、helm部署mysql主从复制 helm repo add bitnami https://charts.bitnami.com/bitnami helm repo updatehelm pull bitnami/mysql 解压后编辑values.yaml文件,修改如下(storageclass已设置默认类) 117 ## param architecture MySQL archit…

TCP断开通信前的四次挥手(为啥不是三次?)

1.四次握手的过程 客户端A发送 FIN(终止连接请求) A:我要断开连接了(FIN)。A进入FIN_WAIT_1状态,表示请求断开,等待对方确认。 服务器B回复 ACK(确认断开请求,但还未准备…

Vue2:el-tree用scope slot为每一个节点添加一个鼠标悬浮时出现的右对齐的按钮

el-tree中,每一个节点后面添加一个按钮,响应除节点点击事件之外的操作,要求: 1、按钮在鼠标悬浮在该节点之上时才出现 2、按钮右对齐 实现如下。 1、为每个节点添加按钮 从官网说明来看,有两种方式添加按钮,render-content和 scoped slot,我使用的是scoped slot方式…

2025年免费量化交易软件——PTrade(含开通攻略)

量化交易软件,为广大投资者提供了一个便捷、高效的投资工具。 本文重点为大家介绍一款2025年好用的免费量化交易软件:PTrade量化,并详解其功能、特点、开通方法等。 一、PTrade的概念 PTrade是恒生电子开发的一款交易终端软件,旨…

【面试题】JVM部分[2025/1/13 ~ 2025/1/19]

JVM部分[2025/1/13 ~ 2025/1/19] 1. JVM 由哪些部分组成?2. Java 的类加载过程是怎样的?3. 请你介绍下 JVM 内存模型,分为哪些区域?各区域的作用是什么?4. JVM 垃圾回收调优的主要目标是什么?5. 如何对 Jav…