Node.js中文件操作模块File System的详细介绍
发布时间 - 2026-01-10 22:19:15 点击率:次File System的缩写是fs,该模块提供本地文件的读写能力。

Nodejs导入文件系统模块(fs)语法如下所示:
var fs = require("fs");
异步和同步
Node.js文件系统(fs模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的fs.readFile()和同步的fs.readFileSync() 。
异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error)。同步则没有回调函数。
建议大家是用异步方法,比起同步,异步方法性能更高,速度更快,而且没有阻塞。
打开文件
语法如下:
fs.open(path,flags[,mode],[callback(err,data)]);//异步
path - 文件的路径。
mode - 设置文件模式(权限),文件创建默认权限为0666(可读,可写)。
callback - 回调函数,带有两个参数如:callback(err,fd) 。
flags - 文件打开的行为。具体如下:
| flag | description |
| r | 以读取模式打开文件。如果文件不存在抛出异常。 |
| r+ | 以读写模式打开文件。如果文件不存在抛出异常。 |
| rs | 以同步的方式读取文件。 |
| rs+ | 以同步的方式读取和写入文件。 |
| w | 以写入模式打开文件,如果文件不存在则创建。 |
| wx | 类似 ‘w',但是如果文件路径存在,则文件写入失败。 |
| w+ | 类似 ‘w+', 但是如果文件路径存在,则文件读写失败。 |
| wx+ | 类似 ‘w+', 但是如果文件路径存在,则文件读写失败。 |
| a | 以追加模式打开文件,如果文件不存在则创建。 |
| ax | 类似 ‘a', 但是如果文件路径存在,则文件追加失败。 |
| a+ | 以读取追加模式打开文件,如果文件不存在则创建。 |
| ax+ | 类似 ‘a+', 但是如果文件路径存在,则文件读取追加失败。 |
获取文件信息
语法如下:
fs.stat(path,[callback(err,stats)]);//异步
fs.stat(path)执行后,会将stats类的实例返回给其回调函数。可以通过stats类中的提供方法判断文件的相关属性。
stats类中的方法有:
| 方法 | 描述 |
| stats.isFile() | 如果是文件返回 true,否则返回 false。 |
| stats.isDirectory() | 如果是目录返回 true,否则返回 false。 |
| stats.isBlockDevice() | 如果是块设备返回 true,否则返回 false。 |
| stats.isCharacterDevice() | 如果是字符设备返回 true,否则返回 false。 |
| stats.isSymbolicLink() | 如果是软链接返回 true,否则返回 false。 |
| stats.isFIFO() | 如果是FIFO,返回true,否则返回 false。FIFO是UNIX中的一种特殊类型的命令管道。 |
| stats.isSocket() | 如果是 Socket 返回 true,否则返回 false。 |
写入文件
语法如下:
fs.writeFile(filename,data[,options],[callback]);//异步 fs.writeFileSync(filename,data); //同步
如果文件存在,该方法写入的内容会覆盖旧的文件内容。
data -要写入文件的数据,可以是String(字符串)或Buffer(流)对象。
options - 该参数是一个对象,包含{encoding,mode,flag}。默认编码为utf8,模式为0666,flag为'w';
追加内容
语法如下:
fs.appendFile(filename,data[,options],[callback]);//同步 fs.appendFileSync(filename,data[,options]); //同步
读取文件
语法如下:
fs.read(fd,buffer,offset,length,position,[callback]);//异步 var buf = fs.readFile(filename,[encoding],[callback(err,data)]);//异步读取 var buf = fs.readFileSync(filename,[encoding]);//同步读取
fd - 通过 fs.open() 方法返回的文件描述符。
buffer - 数据写入的缓冲区。
offset - 缓冲区写入的写入偏移量。
length - 要从文件中读取的字节数。
position - 文件读取的起始位置,如果 position 的值为 null,则会从当前文件指针的位置读取。
encoding,编码格式,该项是可选的。
关闭文件
语法如下:
fs.close(fd,callback);//异步
fd - 通过 fs.open() 方法返回的文件描述符。
截取文件
语法如下:
fs.ftruncate(fd,len,callback);//异步
fd - 通过 fs.open() 方法返回的文件描述符。
len - 文件内容截取的长度。
删除文件
语法如下:
fs.unlink(path,callback);
创建目录
语法如下:
fs.mkdir(path[,mode],callback);
mode - 设置目录权限,默认为 0777。
读取目录
语法如下:
fs.readdir(path,callback);
删除目录
语法如下:
fs.rmdir(path,callback);
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
# nodejs
# fs模块
# filesystem
# 模块
# Node.js 内置模块fs文件系统操作示例详解
# Node.js文件系统fs扩展fs-extra说明
# node.js中fs文件系统模块的使用方法实例详解
# node.js中fs文件系统目录操作与文件信息操作
# 浅谈Node.js:fs文件系统模块
# Node.js中的文件系统(file system)模块详解
# 不存在
# 回调
# 抛出
# 文件系统
# 类中
# 是一个
# 第一个
# 可以通过
# 更高
# 更快
# 可选
# 所示
# 这篇文章
# 均有
# 该项
# 会将
# 错误信息
# 则会
# 值为
# 要写
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
公司网站制作需要多少钱,找人做公司网站需要多少钱?
如何快速搭建安全的FTP站点?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
phpredis提高消息队列的实时性方法(推荐)
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
如何快速上传建站程序避免常见错误?
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
使用Dockerfile构建java web环境
香港服务器WordPress建站指南:SEO优化与高效部署策略
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
如何用腾讯建站主机快速创建免费网站?
如何批量查询域名的建站时间记录?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
如何用y主机助手快速搭建网站?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
如何用花生壳三步快速搭建专属网站?
javascript日期怎么处理_如何格式化输出
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
如何用搬瓦工VPS快速搭建个人网站?
动图在线制作网站有哪些,滑动动图图集怎么做?
如何挑选高效建站主机与优质域名?
微信h5制作网站有哪些,免费微信H5页面制作工具?
在线制作视频的网站有哪些,电脑如何制作视频短片?
JS去除重复并统计数量的实现方法
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
如何生成腾讯云建站专用兑换码?
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
英语简历制作免费网站推荐,如何将简历翻译成英文?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
如何在腾讯云服务器快速搭建个人网站?
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
javascript中的try catch异常捕获机制用法分析
Laravel Docker环境搭建教程_Laravel Sail使用指南
Angular 表单中正确绑定输入值以确保提交与验证正常工作
详解阿里云nginx服务器多站点的配置
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】
Laravel如何实现API版本控制_Laravel API版本化路由设计策略

