码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Nodejs fs模块常用方法 -- File System


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

    文章目录

    • fs文件系统模块
      • 1 什么是fs文件系统模块
      • 2 读取指定文件中的内容
        • 语法格式
        • 参数解释
        • 示例代码
      • 3 向指定文件中写入内容
        • 语法格式
        • 参数解释
        • 示例代码
      • 4 路径动态拼接的问题
      • 5 其他操作

    fs文件系统模块

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

    1 什么是fs文件系统模块

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

    例如:

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

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

    const fs = require('fs')
    
    • 1

    2 读取指定文件中的内容

    语法格式

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

    参数解释

    • 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)
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

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

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

    3 向指定文件中写入内容

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

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

    语法格式

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

    参数解释

    • 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")
        }
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    如果文件写入成功,则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)
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    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)
  • 相关阅读:
    计算机毕业设计ssm校园社团信息管理系统6k87t系统+程序+源码+lw+远程部署
    技术团队要小心,那些技术过早优化的迹象
    在 centos7 上安装Docker
    Java毕业设计-药品管理系统
    数据库PostgreSQL PG 字符串拼接,大小写转换,substring
    分时函数解决一次性加载大量dom造成的卡顿假死
    活字格性能优化技巧(1)——如何利用数据库主键提升访问性能
    js JSON.stringify() 的简单了解之函数的转换
    【每日一题】154. 寻找旋转排序数组中的最小值 II
    一篇了解全MVCC
  • 原文地址:https://blog.csdn.net/qq_46311811/article/details/127986086
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号