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

 更新时间:2022年02月11日 12:14:50   作者:执手天涯@  
这篇文章主要为大家详细介绍了node.js-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);
    }
})

总结

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

相关文章

  • NVM管理node版本以及报错解决

    NVM管理node版本以及报错解决

    在开发过程中有时候会遇到老项目和新项目node版本不一致的情况,这篇文章主要给大家介绍了关于NVM管理node版本以及报错解决方法的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • nodejs与浏览器中全局对象区别点总结

    nodejs与浏览器中全局对象区别点总结

    在本篇文章里小编给大家整理的是一篇关于nodejs与浏览器中全局对象区别点总结内容,对此有需要的朋友们可以学习下。
    2021-12-12
  • 详解nodejs express下使用redis管理session

    详解nodejs express下使用redis管理session

    本篇文章主要介绍了详解nodejs express下使用redis管理session ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-04-04
  • npm的lock机制解析

    npm的lock机制解析

    这篇文章主要介绍了npm的lock机制解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • 如何使用axios库在Node.js中进行代理请求(实践案例)

    如何使用axios库在Node.js中进行代理请求(实践案例)

    axios是一个强大的基于Promise的HTTP客户端,它在浏览器和Node.js环境中均可使用,本文将介绍如何充分利用axios库,在Node.js中进行代理请求的最佳实践,并通过一个实际案例来展示其应用,感兴趣的朋友一起看看吧
    2024-03-03
  • 在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解

    在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解

    在树莓派上运行NodeJS并不需要特别的配置,你只需要确保可以用openssh远程连接到你的树莓派就ok了,关于在Debian(Raspberry Pi)树莓派上安装NodeJS的方法,大家可以通过本文了解下
    2017-09-09
  • Node.js中代码重复与不一致的问题及解决方案

    Node.js中代码重复与不一致的问题及解决方案

    在 Node.js 开发中,代码重复和不一致是常见的问题,尤其是在项目规模扩大和团队协作时,这些问题不仅会增加维护成本,还可能导致逻辑错误和性能问题,本文将探讨这些问题的常见原因,并提供相应的解决方案,需要的朋友可以参考下
    2025-03-03
  • Node.js 实现抢票小工具 & 短信通知提醒功能

    Node.js 实现抢票小工具 & 短信通知提醒功能

    这篇文章主要介绍了Node.js 实现抢票小工具 & 短信通知提醒功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • 20行代码简单实现koa洋葱圈模型示例详解

    20行代码简单实现koa洋葱圈模型示例详解

    这篇文章主要为大家介绍了20行代码简单实现koa洋葱圈模型示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • node.js mongoose index索引操作

    node.js mongoose index索引操作

    在 Mongoose 中,索引(Index)是一种用于提高查询性能的数据结构,它可以加速对数据库中文档的检索操作,本文给大家介绍
    node.js mongoose index索引操作
    ,感兴趣的朋友一起看看吧
    2023-12-12

最新评论