701 字
2 分钟
fs(File System)- 文件操作
文件操作是IO的一种,涉及到node.js设计思想中非常重要的异步IO
安装引入
使用时需要引入:
const fs = require('fs');同步与异步的区别
- 同步:当代码执行时,下面的代码只能等待其执行完毕后才能执行,参数没有回调函数,有返回值,返回值与异步中的特殊参数一致
- 异步:参数有回调函数,回调函数中有特殊参数,无返回值
一般回调函数的第一个参数是错误对象 err,如果 err 为 null,表示没有错误,否则报错 因此建议回调函数内部使用
if(err) return常用操作
- fs.xxx:异步操作
- fs.xxxSync:同步操作
查看文件
异步操作
fs.stat(path[, options], callback)- path:访问文件的路径
- options:可选参数,默认false
- callback:回调函数,回调函数参数:特殊对象stats
同步操作
fs.statSync(path[, options])返回值与异步中的stats对象性质一样
stats常用属性
其他属性参考API
| 属性名 | 属性含义 |
|---|---|
| atime | 文件访问时间 |
| mtime | 文件数据发生变化的时间 |
| ctime | 文件的状态信息发生变化的时间(比如文件权限) |
| birthtime | 文件创建时间 |
stats常用方法
其他方法参考API
| 方法名 | 方法含义 |
|---|---|
| stats.isFile() | 是否为文件 |
| stats.isDirectory() | 是否为目录 |
读取文件
会把所有的文件内容全部加载到内存,只适合内容量比较少的文件
异步操作
fs.readFile(path[, options], callback)- path:文件的全路径
- options:可选参数,
编码encording和 标记flag(指定文件是读还是写,默认r) - callback:回调函数,回调函数参数:读取到的文件的内容 data
如果options存在并且为编码,那么回调函数获取的数据就是字符串,否则为Buffer实例对象
获取文本内容示例
fs.readFile(path,(err,data) => console.log(data.toString()))fs.readFile(path,'utf8',(err,data) => console.log(data))同步操作
fs.readFileSync(path[, options])参数一样,返回值与异步中的data性质一样
写入文件
尽量只调用一次,会把所有的文件内容全部加载到内存,只适合内容量比较少的文件
异步操作
fs.writeFile(file, data[, options], callback)- file:文件的全路径
- data:写入的数据
- options:可选参数:
编码encording(默认utf8)、控制文件权限mode(默认 0o666)和 标记flag(指定文件是读还是写,默认w) - callback:回调函数(仅有参数err)
获取文本内容示例
fs.writeFile(path,(err) => {})同步操作
fs.writeFileSync(path[, options])参数一样,无返回值
重命名文件
异步操作
fs.rename(oldPath, newPath, [callback(err)])- oldPath:原路径
- newPath:新路径
- callback:可选参数,回调函数(仅有参数err)
同步操作
fs.renameSync(oldPath, newPath)参数一样,无返回值
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
fs(File System)- 文件操作
https://marrydream.top/posts/nodejs/fsfile-system--文件操作/ 部分信息可能已经过时
相关文章 智能推荐