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

目录
  • 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);
    }
})

总结

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

(0)

相关推荐

  • Node的文件系统你了解多少

    目录 一.Node的文件系统 1.FS(FileSystem):实现对文件的IO操作.fs是Node的模块,需要导入 2.同步和异步 3.回调函数 4.fs模块的常用函数 (1)读文件 (2)打开文件 (3)获取文件信息 (4)写入文件 (5)读取文件(以二进制方式读) (6)关闭文件 (7)创建目录(文件夹) (8)删除目录 (9)读取目录 (10)文件拷贝 (11)给文件中追加内容 (12)删除文件 (13)文件重命名 总结 一.Node的文件系统 1.FS(FileSystem):实现对文

  • NodeJs 文件系统操作模块fs使用方法详解

    NodeJs:文件读取API使用方法 - - readFile() 需求:使用Node中提供的文件操作API,读取files目录下的1.txt 文档中文本内容. Node的三个组成部分:ECMAScript核心 + 全局成员 + 核心API成员 核心API成员,在大家安装Node应用程序的时候,就已经安装到了自己的电脑中. 如果想要访问核心成员,直接使用require("核心成员的名称"),就能够导入并使用这些核心成员. const fs = require("fs"

  • 如何在Nodejs中使用模块fs文件系统

    概述 node 的fs文档密密麻麻的 api 非常多,毕竟全面支持对文件系统的操作.文档组织的很好,操作基本分为文件操作.目录操作.文件信息.流这个大方面,编程方式也支持同步.异步和 Promise. 本文记录了几个文档中没详细描写的问题,可以更好地串联fs文档思路: 文件描述符 同步.异步与 Promise 目录与目录项 文件信息 stream 文件描述符 文件描述符是一个非负整数.它是一个索引值,操作系统可以根据它来找到对应的文件. 在 fs 的很多底层 api 中,需要用到文件描述符.在文

  • node.js文件操作系统实例详解

    本文实例讲述了node.js文件操作.分享给大家供大家参考,具体如下: 文件读取 普通读取 同步读取 var fs = require('fs'); var data; try{ data = fs.readFileSync('./fileForRead.txt', 'utf8'); console.log('文件内容: ' + data); }catch(err){ console.error('读取文件出错: ' + err.message); } 输出如下: /usr/local/bin/

  • node.js中fs文件系统模块的使用方法实例详解

    本文实例讲述了node.js中fs文件系统模块的使用方法.分享给大家供大家参考,具体如下: node.js中为我们提供了fs文件系统模块,实现对文件或目录的创建,修改和删除等操作. fs模块中,所有的方法分为同步和异步两种实现. 有 sync 后缀的方法为同步方法,没有 sync 后缀的方法为异步方法. 一.文件的整个读取 const fs = require('fs'); //参数一表示读取的文件 //参数二表示读取的配置,{encoding:'null', flag:'r'} //encod

  • 浅谈Node.js:fs文件系统模块

    fs文件系统模块,这是一个非常重要的模块,对文件的操作都基于它.该模块的所有方法都有同步和异步两种方式,下面便介绍一下该模块的使用. 1.检测当前进程对文件的权限 使用fs.access(path[, mode], callback)方法检查权限,mode参数是一个整数,有以下常量值: fs.constants.F_OK     path对调用进程是可见的,既存在 fs.constants.R_OK     path是可读的 fs.constants.W_OK    path是可写的 fs.co

  • Node.js中文件系统fs模块的使用及常用接口

    fs是filesystem的缩写,该模块提供本地文件的读写能力,基本上是POSIX文件操作命令的简单包装.但是,这个模块几乎对所有操作提供异步和同步两种操作方式,供开发者选择. JavaScript 的是没有操作文件的能力,但是 Node 是可以做到的,Node 提供了操作文件系统模块,是 Node 中使用非常重要和高频的模块,是绝对要掌握的一个模块系统. fs 模块提供了非常多的接口,这里主要说一下一些常用的接口. 1.常用API快速复习 fs.stat 检测是文件还是目录 const fs

  • Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法

    fs模块.js: /* 1. fs.stat 检测是文件还是目录(目录 文件是否存在) 2. fs.mkdir 创建目录 (创建之前先判断是否存在) 3. fs.writeFile 写入文件(文件不存在就创建,但不能创建目录) 4. fs.appendFile 写入追加文件 5.fs.readFile 读取文件 6.fs.readdir 读取目录 7.fs.rename 重命名 8. fs.rmdir 删除目录 9. fs.unlink 删除文件 */ var fs=require('fs');

  • 谈谈node.js中的模块系统

    Node.js 的模块 JavaScript 做为一门为网页添加交互功能的简单脚本语言问世,在诞生时并不包含模块系统,随着 JavaScript 解决问题越来越复杂,把所有代码写在一个文件内,用 function 区分功能单元已经不能支撑复杂应用开发了,ES6 带来了大部分高级语言都有的 class 和 module,方便开发者组织代码 import _ from 'lodash'; class Fun {} export default Fun; 上面三行代码展示了一个模块系统最重要的两个要素

  • node.js 核心http模块,起一个服务器,返回一个页面的实例

    如下所示: let http=require("http"); //引入核心http模块 let fs=require("fs"); let mime={ '.js':'application/javascript', '.css':'text/css' } //创建一个函数,req代表客户端,res代表服务器可写流 let listener=(req,res)=>{ //res是可写流,有write和end if(req.url==="/"

  • 详解node.js的http模块实例演示

    上世纪六七十年代,红岸基地一直在向茫茫外太空发送讯号,当叶文洁通过太阳作为广播,将地球的讯号向外发送时,宇宙的各个先进文明都接收到了讯号,其中就包括了离我们最近的三体星. 本篇用node.js的http模块模拟这一事件. let http = require('http') // 创建一个web服务器 let server = http.createServer() server.on('request', function () { console.log('我们接收到了一个用原始膜发送讯号的

  • Node.js 使用request模块下载文件的实例

    前言 Node.js是JavaScript的一个解析器,可以运行js文件,今天就是简单说一下如何使用Node.js下的request模块下载文件. 1.request 模块下载 npm install request 首先建一个文件夹,在控制台进入该文件夹执行这个命令之后就会在当前文件夹下载request模块了 2.代码编写 var request = require('request'); var fs = require('fs'); /* * url 网络文件地址 * filename 文

  • node.js使用zlib模块进行数据压缩和解压操作示例

    本文实例讲述了node.js使用zlib模块进行数据压缩和解压操作.分享给大家供大家参考,具体如下: 我们可以使用 zlib 模块来对数据进行压缩和解压处理,减小数据体积,加快传输速度. 一.通过创建转换流,对文件进行压缩和解压 const fs = require('fs'); const zlib = require('zlib'); const path = require('path'); function gzip($src) { fs.stat($src, function (err

  • node.js中module模块的功能理解与用法实例分析

    本文实例讲述了node.js中module模块的功能理解与用法.分享给大家供大家参考,具体如下: node.js中使用CommonJS规范实现模块功能,一个单独的文件就是一个单独的模块.通过require方法实现模块间的依赖管理. 通过require加载模块,是同步操作. 加载流程如下: 1.找到需要加载的模块文件. 2.判断是否缓存过,如果没有,则读取模块文件的内容. 3.把读取到的内容,封装在一个函数里运行. (function (exports, require, module, __fi

随机推荐