nodejs中fs文件系统内置模块

2023-05-16

一、fs文件系统模块

Node.js 的 API 内置有两个模块: path 和 fs ,我们使用 JavaScript 代码编写程序运行在 Node.js 环境中就可以操作文件

1.1、同步读取文件信息

同步读取:读取的时候,要等文件读取完毕后,才会执行后面的代码 (sync 同步)


const fs = require("fs");
const path = require("path");
let pathName = path.join(__dirname, 'hello.txt');
​
// const content = fs.readFileSync(pathName);   同步读取文件
// console.log(content);
// console.log(content.toString());
​
const content = fs.readFileSync(pathName, "utf-8");
console.log(content);
​  

1.2、异步读取文件信息

不用等待文件读取完毕就会执行后面的代码。

思考:如何读到后面的数据

答:在读取文件的时候,传递一个回调函数callback,当读取完毕后,回调函数执行,读取后面的数据


const fs = require("fs");
const path = require("path");
​
let pathName = path.join(__dirname, "hello2.txt");
// console.log(file);
//参数1 要读取的文件
//参数2 设置读取到内容的编码,设置后读到的内容为字符串,如果不传则读到的数据为 buffer
//参数3 回调函数,读取完文件后执行的代码
fs.readFile(pathName, "utf-8",(error, data)=>{
​
    // console.log(error);
    // console.log(data);
​
    if(error){
        console.log(error);
        return
    }
​
    console.log(data);
});  

1.3、异步写入

语法:fs.writeFile(文件路径,“改写入的内容”,“字符集编码”,回调函数)

写入成功后原文件内容被覆盖重写


const fs = require("fs");
const path = require("path");
​
let pathName = path.join(__dirname, "hello.txt");
​
​
fs.writeFile(pathName, "hello_write111", "utf-8",(error)=>{
    console.log("error");
    console.log("写完啦");
});
console.log("end");  

1.4、读取当前路径下的文件名列表方法

遍历的结果为数组


const fs = require("fs");
fs.renameSync(旧文件名, 新文件名);   //修改文件名
fs.readdirSync(__dirname);    //读取当前路径下的文件名列表
​
let str = "hello";
str.endsWith("he");   //true
str.startsWith("go");  //false
str.substring(2,4) //ll 左闭右开区间
str.substring(2) //llo  下标为2取到结束  

1.5、小案例

需求:把当前文件夹的js文件的名字都添加前缀 [day03],利用数组遍历(foreach)的方式去获取每一个数组名


const fs = require("fs");
let nameList = fs.readdirSync(__dirname);
​
nameList.forEach(currFileName => {
    if(currFileName.endsWith(".js")){
        fs.renameSync(currFileName, `[day03]${currFileName}`)
    }
});  

需求:把当前文件夹的名字都删除前缀 [day03]


const fs = require("fs");
let nameList = fs.readdirSync(__dirname);
let str1 = "[day03]"
​
nameList.forEach(currFileName => {
    if(currFileName.startsWith(str1)){
        fs.renameSync(currFileName, currFileName.substring(str1.length))
    }
});  

1.6、思考题

// 需求:现在存在三个文件 1.txt(我) 2.txt(爱) 3.txt(nodejs) // 每个文件里面有一个字符。使用:fs.readFile(异步) 顺序读取 1.txt 2.txt 3.txt 里面的内容,然后组成 我爱nodejs 把这个字符串写入 异步的写 到 data.txt 文件里面。


const fs = require("fs");
const path = require("path");
​
let pathName1 = path.join(__dirname,"files", "1.txt");
let pathName2 = path.join(__dirname,"files", "2.txt");
let pathName3 = path.join(__dirname,"files", "3.txt");
let pathName4 = path.join(__dirname,"files", "data.txt");
​
​
fs.readFile(pathName1,"utf-8",(error1, data1)=>{
    if(error1){
        console.log(error1);
        return
    }
​
    fs.readFile(pathName2,"utf-8",(error2, data2)=>{
​
        if(error2){
            console.log(error2);
            return
        }
​
        fs.readFile(pathName3,"utf-8",(error3, data3)=>{
​
            if(error3){
                console.log(error3);
                return
            }
​
            // console.log(data1+data2+data3);
​
            fs.writeFile(pathName4,data1+data2+data3,"utf-8",(error)=>{
                console.log(data1+data2+data3);
            })
​
        })
    })
});  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nodejs中fs文件系统内置模块 的相关文章

随机推荐

  • Thinkphp开启项目分组,绑定二级域名

    如果发现没有效果 xff0c 请开启debug xff0c 清除缓存
  • 链式编程+jQuery中html( )和text( )方法

    事件切换的复合属性写法 xff1a 标签名 hover function 执行函数 function 执行函数 xff0c 这一个方法仅hover可用 jQuery中有个动画队列的机制 xff1a 当我们对一个对象添加多次动画效果时后添加的
  • jQuery动态创建元素,通过元素操作修改购物车相关交互效果

    1 创建元素 语法 34 39 lt li gt lt li gt 34 动态的创建了一一个 lt li gt 2 添加元素 内部添加元素 生成之后 它们是父级关系 外部添加元素 生成之后 他们是兄弟关系 1 内部添加 把内容放入匹配元素内
  • jQuery 尺寸、位置操作

    1 width height 获取设置元素 width和height大小 console log 34 div 34 width 34 div 34 width 300 2 innerWidth innerHeight 获取设置元素 wid
  • jQuery侧边导航栏模块交互效果,导航栏点击事件、卷动事件、节流阀

    任务分析 xff1a 当我们滚动到模块 xff0c 就让电梯导航显示出来点击电梯导航页面可以滚动到相应内容区域核心算法 因为电梯导航模块和内容区模块 对应的当我们点击电梯导航某个小模块 xff0c 就可以拿到当前小模块的索引号 xff0c
  • jQuery学习周记

    周记 本周主要跟着教学视频制作了商城购物车案例 xff0c 页面电梯导航 xff0c 学习了利用jQuery操作尺寸 位置的操作 xff0c 这一部分就类似于JS中的BOM页面文档类型 xff0c 主要是通过对页面卷动事件进行一系列操作 其
  • jQuery自动触发事件与bootstrap/jQuery插件用法

    jQuery自动触发事件 有些事件希望自动触发 比如轮播图自动播放功能跟点击右侧按钮一致 可以利用定时器自动触发右侧按钮点击事件 xff0c 不必鼠标点击触发 语法 xff1a 1 element click 2 element trigg
  • 初识AJAX基础(一)

    1 初识AJAX 1 概要 google suggest A xff1a 通过发送请求到服务器上获取相关数据 B xff1a 发送方式 xff1a 通过URL 超链接 表单验证 C xff1a 将请求的数据发送给服务器获得相关数据 它是浏览
  • 使用nvm切换node方法,以及在nvm中的注意事项

    利用nvm随意下载nodejs版本 使用nvm去切换nodejs版本过程中出现的乱码情况分析 1 nvm安装路径错误导致nodejs下载路径有误 xff0c 无法正常打开 xff08 建议删除 xff0c 重新安装时使用默认路径安装 xff
  • nodejs中对es6语法规范讲解

    1 var的弊端及let关键字 1 var声明的变量有预解析 xff08 变量提升 xff09 xff0c 造成 逻辑混乱 xff0c 可以先使用 xff0c 后声明 2 var可以重复定义同一个变量 xff0c 逻辑错误 xff0c 第二
  • nodejs中解构语法

    1 解构语法 1 对象解构 存在意义 xff1a 简化代码 注意点 xff1a 1 在进行完全解构时 xff0c 属性值内花括号中的属性值的顺序可以随意颠倒 2 解构之后起重命名 let name itsName 61 obj 解构之后重命
  • 使用pt-query-digest分析mysql

    最近在看 高性能MySQL xff0c 作者们背靠Percona向我展示了以前从不知道的一些关于MySQL的知识以及各种分析优化工具 xff0c 比如这里要说的pt query digest 什么是pt query digest pt qu
  • node.js对es6语法学习

    1 es6模板字符串的使用 xff08 模板语法 xff09 console log 96 obj newname 是 obj name 的另外一个名字 xff0c 还有就是她今年18岁啦 96 es6 提供一个语法表示一个字符串 xff0
  • ES6中的箭头函数

    1 箭头函数 ES6 允许使用 箭头 xff08 61 gt xff09 简化函数的定义 注意点 xff1a 1 形参个数如果为1个 xff0c 可以省略小括号不写 2 如果函数体里面只有一个语句 xff0c 可以省略大括号不写 并且他会默
  • ES6this指向丢失问题+利用class类创建对象

    1 在dom操作中使用箭头函数可以规避this指向丢失问题 lt DOCTYPE html gt lt html lang 61 34 en 34 gt lt head gt lt meta charset 61 34 UTF 8 34 g
  • nodeJS继承中的子类constructor的写法+静态属性和静态方法+nodejs中的全局对象

    1 继承中的子类constructor的写法 xff1a 在ES6中使用继承时 xff0c constructor中必须调用super 方法 其本质是在调用父类的constructor方法 通过这样的方式来达到属性继承的效果 xff0c 解
  • ES6中process对象

    process对象 了解 console log process argv 返回一个数组 xff0c 前两个值是 node 命令所在位置 xff0c 被执行 JS 文件的路径 xff0c 若你执行命令时还有带有参数 xff0c 依次会填充到
  • nodeJS模块化开发

    1 模块的使用 1 1 为什么要模块化 了解 在计算机程序的开发过程中 xff0c 随着程序代码越写越多 xff0c 在一个文件里代码就会越来越长 xff0c 越来越不容易维护 为了编写可维护的代码 xff0c 我们把很多函数分组 xff0
  • nodejs中Buffer数据类型

    一 Buffer数据类型 JavaScript 语言自身只有字符串数据类型 xff0c 没有二进制数据类型 但在处理像文件流时 xff08 文件读写操作 xff09 xff0c 必须使用到二进制数据 因此在 Node js 中 xff0c
  • nodejs中fs文件系统内置模块

    一 fs文件系统模块 Node js 的 API 内置有两个模块 xff1a path 和 fs xff0c 我们使用 JavaScript 代码编写程序运行在 Node js 环境中就可以操作文件 1 1 同步读取文件信息 同步读取 xf