
IO模块
发布日期:2021-05-07 23:09:04
浏览次数:21
分类:精选文章
本文共 2434 字,大约阅读时间需要 8 分钟。
IO与Node.js文件操作模块(fs模块)
IO(输入输出)是计算机科学中的基本概念,指计算机与外部设备(如磁盘、打印机、网络卡等)进行数据传输的过程。在Node.js中,IO操作是与外部设备直接交互的重要环节,但其速度通常低于CPU与内存之间的交互速度。因此,在Node.js中,大多数文件操作API都采用异步方式执行,以避免阻塞JavaScript执行环境。
fs模块:处理文件操作
Node.js内置了fs
模块,用于处理文件操作。由于IO操作速度较慢,Node.js采用异步模式来提升性能,特别是在Node.js 12及以上版本,fs.promises
API提供了基于Promise的文件操作方法。
1. 读取文件
readFile
方法用于读取文件内容,默认使用utf-8
编码格式。例如:
const fs = require("fs");const path = require("path");// 读取文件内容const filePath = path.resolve(__dirname, "./1.txt");fs.readFile(filePath, "utf-8", (err, content) => { console.log(content.toString());});
如果需要使用Promise方式,可以使用fs.promises.readFile
:
async function test() { const filePath = path.resolve(__dirname, "./1.txt"); const content = await fs.promises.readFile(filePath, "utf-8"); console.log(content);}
2. 写入文件
writeFile
方法用于将内容写入文件,默认使用utf-8
编码格式。文件路径可以通过path.resolve
拼接:
const fs = require("fs");const path = require("path");// 示例文件路径const filePath = path.resolve(__dirname, "./2.txt");// 写入内容async function test() { const buffer = Buffer.from("dasdasfsa", "utf-8"); await fs.promises.writeFile(filePath, buffer, { flag: "a", // 追加模式 }); console.log("文件已成功写入");}
3. 获取文件状态
stat
方法用于获取文件或目录的状态信息,返回一个包含详细属性的对象。例如:
const fs = require("fs");const path = require("path");// 示例文件路径const filePath = path.resolve(__dirname, "./1.txt");// 获取文件状态async function test() { const state = await fs.promises.stat(filePath); // 检查是否是文件或目录 console.log(state.isDirectory(), state.isFile());}
4. 读取文件目录
readdir
方法用于读取文件目录中的文件和子目录。例如:
const fs = require("fs");const path = require("path");// 示例文件路径const filePath = path.resolve(__dirname, "./1.txt");// 读取文件子目录async function test() { const files = await fs.promises.readdir(filePath); console.log(files);}
5. 创建目录
mkdir
方法用于创建目录。可以使用以下方式执行:
const fs = require("fs");const path = require("path");// 示例目录路径const dirPath = path.resolve(__dirname, "./newDir");// 创建目录async function test() { await fs.promises.mkdir(dirPath, { recursive: true }); console.log("目录已成功创建");}
6. 删除文件或目录
unlink
方法用于删除文件或目录。需要谨慎使用:
const fs = require("fs");const path = require("path");// 示例文件或目录路径const filePath = path.resolve(__dirname, "./1.txt");// 删除文件async function test() { await fs.promises.unlink(filePath); console.log("文件已成功删除");}
总结
通过fs
模块,Node.js提供了强大的文件操作能力,适用于处理各种文件操作需求。从读取文件到写入文件,再到获取文件状态、读取目录、创建目录和删除文件,fs
模块都提供了相应的API。使用异步操作模式可以有效避免IO阻塞,提升Node.js应用的性能。
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月10日 16时35分15秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
python去除字符串中的特殊字符(爬虫存储数据时会遇到不能作为文件名的字符串)
2019-03-06
SpringCloud微服务(03):Hystrix组件,实现服务熔断
2019-03-06
Spring 框架基础(01):核心组件总结,基础环境搭建
2019-03-06
Cassandra数据建模
2019-03-06
Internet Explorer 10 专题上线
2019-03-06
云计算之路-阿里云上:0:25~0:40网络存储故障造成网站不能正常访问
2019-03-06
网站故障公告1:使用阿里云RDS之后一个让人欲哭无泪的下午
2019-03-06
上周热点回顾(6.3-6.9)
2019-03-06
上周热点回顾(8.12-8.18)
2019-03-06
【故障公告】升级阿里云 RDS SQL Server 实例故障经过
2019-03-06
蹒跚来迟:新版博客后台上线公测
2019-03-06
[网站公告]11月26日00:00-04:00阿里云RDS升级
2019-03-06
[网站公告]又拍云API故障造成图片无法上传(已恢复)
2019-03-06
云计算之路-阿里云上:“黑色30秒”走了,“黑色1秒”来了,真相也许大白了
2019-03-06
上周热点回顾(6.9-6.15)
2019-03-06
上周热点回顾(10.20-10.26)
2019-03-06
上周热点回顾(2.16-2.22)
2019-03-06
上周热点回顾(3.2-3.8)
2019-03-06
.NET跨平台之旅:借助ASP.NET 5 Beta5的新特性显示CLR与操作系统信息
2019-03-06
上周热点回顾(7.27-8.2)
2019-03-06