信息发布→ 登录 注册 退出

node.js-fs文件系统模块这是你知道吗

发布时间:2026-01-11

点击量:
目录
  • 1、什么是fs文件系统模块
  • 2、读取指定文件的内容
    • 1、fs.readFile()的语法格式
    • 2、fs.readFile()读取文件内容
    • 3、判断文件是否读取成功
  • 3、向指定文件写入内容
    • 1、fs.writeFile()的语法格式
    • 2、fs.writeFile()写入文件
    • 3、fs.writeFile()判断写入是否成功
  • 4、写入文件和读取文件综合应用
    • 5、fs模块-路径动态拼接问题
      • 总结

        1、什么是fs文件系统模块

        【解释】: fs文件系统模块是Node.js官方提供的,用来操作文件的模块,它提供了一系列的方法和属性,用来满足用户对文件操作的基本需求。

        【基本使用】:

        安装node后直接导入

        const fs = require ('fs')
        

        2、读取指定文件的内容

        1、fs.readFile()的语法格式

        【语法】:

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

        【参数解读】:

        • 参数1:必选参数,表示读取文件的路径
        • 参数2:可选参数,表示可选参数,表示通过什么方式的编码来读取文件
        • 参数3:必选参数,回调函数,通过回调函数获取文件内容

        2、fs.readFile()读取文件内容

        【代码示例】:

        // 1、导入fs模块
        const fs = require('fs');
        // 2、使用fs.readfiles()方法读取指定文件的内容
        /**
         * 参数1:读取文件的存放路径
         * 参数2:读取文件的时候采用的编码格式
         * 参数3:回调函数,参数1表示读取失败的结果 参数2 表示读取成功的结果
         */
        fs.readFile('./files/11.txt', 'utf-8', function (err, dataStr) {
            // 文件信息读取成功的时候err返回值是null
            console.log(err);
            console.log('------------------');
            console.log(dataStr);
        })
        

        3、判断文件是否读取成功

        【代码示例】:

        // 1、导入fs模块
        const fs = require('fs');
        // 2、使用fs.readfiles()方法读取指定文件的内容
        /**
         * 参数1:读取文件的存放路径
         * 参数2:读取文件的时候采用的编码格式
         * 参数3:回调函数,参数1表示读取失败的结果 参数2 表示读取成功的结果
         */
        fs.readFile('./files/11.txt', 'utf-8', function (err, dataStr) {
            if (err) {
                // 读取文件失败,返回错误信息
                return console.log('读取文件失败!!' + err.message);;
            } else {
                // 读取文件成功,打印文件信息
                console.log('读取文件成功:'+dataStr);
            }
        }) 
        

        3、向指定文件写入内容

        1、fs.writeFile()的语法格式

        【语法】:

        fs.writeFile(filePath, data, [,option] callback)
        

        【参数解读】:

        • 参数1:必选参数,指定文件字符串路径,表示文件的存放路径
        • 参数2:必选参数,表示要写入的内容
        • 参数3:可选参数,表示用什么方式写入内容,默认是utf-8
        • 参数4:必选参数,表示文件写入之后的回调函数。

        2、fs.writeFile()写入文件

        【代码示例】:

        // 1、导入fs模块
        const fs = require('fs')
        // 2、使用fs.writeFile()方法,向文件中写入内容
        /**
         * 参数1:写入信息的路径
         * 参数2:要写入的内容
         * 参数3:回调函数
         * 参数4:编码格式,默认是utf-8,可以省略不写
         */
        fs.writeFile('./files/2.txt', '张三', function (err) {
            // 如果文件写入成功,err返回null
            // 如果文件写入失败,则返回一个错误对象
            console.log(err);
        })
        

        3、fs.writeFile()判断写入是否成功

        // 1、导入fs模块
        const fs = require('fs')
        // 2、使用fs.writeFile()方法,向文件中写入内容
        /**
         * 参数1:写入信息的路径
         * 参数2:要写入的内容
         * 参数3:回调函数
         * 参数4:编码格式,默认是utf-8,可以省略不写
         */
        fs.writeFile('./files/2.txt', '张三', function (err) {
            // 如果文件写入成功,err返回null
            // 如果文件写入失败,则返回一个错误对象
            if (err) {
                return console.log('文件写入失败' + err.message);
            } else {
                console.log('文件写入成功!!');
            }
        
        })
        

        4、写入文件和读取文件综合应用

        【需求】:

        • 使用 fs 文件系统模块,将成绩.txt文件中的考试数据,整理到成绩-ok.txt文件中。
        • 整理前,成绩.txt文件中的数据格式如下:
        • 小红=100…
        • 整理后的格式如下:
        • 小红:100…

        【案例分析】:

        • 导入fs文件模块
        • 读取文件中的旧数据
        • 判断是否读取成功
        • 数据格式处理
        • 写入新的文件中

        【代码实现】:

        // 1、导入fs文件系统模块
        const fs = require("fs");
        // 2、读取成绩信息
        fs.readFile('./files/成绩.txt', 'utf-8', function (err, data) {
            // 判断成绩是否读取成功
            if (err) {
                // 读取失败,返回错误信息
                return console.log('读取成绩失败!!' + err.message);
            } else {
                // 读取成功。返回读取的数据
                // 将成绩的数据按照空格分隔
                const arrOld = data.split(' ')
                // 对分隔后的数组,对每一项数据进行字符串替换操作
                arrNew = [];
                arrOld.forEach(item => {
                    arrNew.push(item.replace('=', ':'))
                })
                // 对新的数组中的每一项进行合并
                const newStr = arrNew.join('\r\n')
                // 将新的数据写入文件
                fs.writeFile('./files/newScore.txt', newStr, function (err) {
                    // 判断是否写入成功
                    if (err) {
                        // 写入失败,返回错误信息
                        return console.log('写入文件信息失败!!' + err.message);
                    } else {
                        // 写入成功
                        console.log('写入文件成功!!');
                    }
                })
            }
        })
        

        5、fs模块-路径动态拼接问题

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

        【原因】: 代码在运行的时候,会以执行 node 命令时所处的目录,动态拼接出被操作文件的完整路径。

        【解决方案】:

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

        const fs = require('fs');
        // __dirname表示当前文件的目录
        fs.readFile(__dirname + '/files/11.txt', 'utf-8', function (err, data) {
            if (err) {
                return err.message;
            } else {
                console.log(data);
            }
        })
        

        总结

        本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!          

        在线客服
        服务热线

        服务热线

        4008888355

        微信咨询
        二维码
        返回顶部
        ×二维码

        截屏,微信识别二维码

        打开微信

        微信号已复制,请打开微信添加咨询详情!