Nodejs fs模块常用方法 -- File System

视频链接:黑马程序员Node.js全套入门教程

fs文件系统模块

官方文档:File system Documentation (nodejs.org)

1 什么是fs文件系统模块

fs模块是Nodejs官方提供的,用来操作文件的模块,它提供了一系列的方法和属性,用来满足用户对文件的操作需求

例如:

  • fs.readFile()方法,用来读取指定文件中的内容
  • fs.writeFile()方法,用来向指定的文件中写入内容

在js文件中,可以使用如下方式导入

const fs = require('fs')

2 读取指定文件中的内容

语法格式

fs.readFile(path[, options], callback)

参数解释

  • path:文件路径(必选)
  • options:配置选项,若是字符串则指定编码格式
    • encoding:编码格式
    • flag:打开方式
  • callback:回调函数(必选)
    • err:错误信息
    • data:读取的数据,如果未指定编码格式则返回一个 Buffer

示例代码

const fs = require('fs')

fs.readFile('./test.txt', 'utf8', (err, data) => {
    if (err) {
        // 文件读取失败
        return console.log(err)
    }
    console.log(data)
})

如果读取成功,则err的值为null,data的值为文件文本内容

如果读取失败,则err的值为错误对象,data的值为undefined

3 向指定文件中写入内容

写入文件的时候只能创建文件,不能创建目录

重复调用该方法时候,会用新内容覆盖旧内容

语法格式

fs.writeFile(file, data[, options], callback)

参数解释

  • file:文件路径,必选
  • data:写入内容,必选
  • options:配置选项,包含 encoding, mode, flag;若是字符串则指定编码格式
  • callback:回调函数,必选

示例代码

const fs = require('fs')

fs.writeFile('./files/txt', "文件内容。。。", 'utf8', err => {
    if (err) {
        // 写入失败
        console.log(err)
    } else {
        console.log("success")
    }
})

如果文件写入成功,则err的值为null

如果文件写入失败,则err的值为错误对象

4 路径动态拼接的问题

在使用fs模块操作文件的时候,如果提供的操作路径是以./../开头的相对路径,很容易出现路径动态拼接错误的问题

原因:代码在运行的时候,会以执行node命令时所处的目录,动态拼接处被操作问价的完整目录

解决方案:在使用fs模块操作文件的时候,直接提供完整路径,不要提供./../开头的相对路径,从而防止动态路径拼接的问题

__direname表示当前文件所处的目录(注意是双下划线)

fs.readFile(__dirname + '/files/test.txt', 'utf8', (err, data) => {
    if (err) {
        // 文件读取失败
        return console.log(err)
    }
    console.log(data)
})

5 其他操作

验证路径是否存在:

  • fs.exists(path, callback)
  • fs.existsSync(path)

获取文件信息:

  • fs.stat(path, callback)
  • fs.stat(path)

删除文件:

  • fs.unlink(path, callback)
  • fs.unlinkSync(path)

列出文件:

  • fs.readdir(path[,options], callback)
  • fs.readdirSync(path[, options])

截断文件:

  • fs.truncate(path, len, callback)
  • fs.truncateSync(path, len)

建立目录:

  • fs.mkdir(path[, mode], callback)
  • fs.mkdirSync(path[, mode])

删除目录:

  • fs.rmdir(path, callback)
  • fs.rmdirSync(path)

重命名文件和目录:

  • fs.rename(oldPath, newPath, callback)
  • fs.renameSync(oldPath, newPath)

监视文件更改:

  • fs.watchFile(filename[, options], listener)
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hydrion-Qlz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值