mobile wallpaper 1
mobile wallpaper 2
mobile wallpaper 3
mobile wallpaper 4
701 字
2 分钟
fs(File System)- 文件操作
2021-01-06

文件操作是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--文件操作/
作者
茉铃
发布于
2021-01-06
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录