node.js中的文件读取写入操作

news2025/1/21 20:01:18

fs文件系统模块

什么是fs文件系统模块

fs模块是node.js官方提供的、操作文件的模块。通过fs模块可以实现对文件的读取以及写入操作。

例如:

  • fs.readFile():用于读取指定文件的文件内容
  • fs.writeFile():用于向指定的文件写入内容

引入fs模块:

const fs = require('fs');

读取指定文件的内容

  • fs.readFile()语法: fs.readFile(path[,options],callback)
  • 参数:* path:必选参数,字符串格式,表示文件的路径* options:可选 参数,表示以什么编码格式来读取文件* callback:必选参数:文件读取完成之后,通过这个回调函数返回读取的结果(失败:失败信息;成功:读取的结果)

栗子:

首先我先创建一个名为test.txt的文档,并且里面的内容是: 12341234

然后我们使用node.js里面的fs模块来读取文件:

 // 引入fs模块
 const fs = require('fs');
  // 读取文件
 fs.readFile('./test.txt','utf-8',function(err,data){
 console.log(err);// null
 console.log(data);// 12341234
 }) 

我们可以看到在读取文件的时候,后面回调函数里面有两个参数:

1.第一个参数代表着读取失败的参数,此时我们这里读取成功,所以结果为null
2.第二个参数代表着读取成功之后的结果,这里我们读取到文件的内容,所以输出的就是文件的内容。

我们可以根据读取文件回调函数的第一个参数返回的值来判断文件是否读取成功:如果返回的null,代表文件读取成功;否则读取失败。

向指定文件写入内容

  • fs.writeFile()语法: fs.writeFile(file,data[,options],callback);
  • 参数:* 参数1:必选参数,字符串格式,表示文件的路径* 参数2:必选参数,表示写入的内容* 参数3:可选 参数,表示以什么编码格式写入内容* 参数4:必选参数,文件写入后的回调函数

栗子:

 const fs = require('fs');
 ​
 fs.writeFile('text.txt', '海绵宝宝', 'utf-8', function(err) {
   console.log(err);// null
 }) 

这段代码执行完毕之后,输出一个null,那是不是就表示已经写入成功了呢?

是的,在同级文件夹下,我们可以看到生成了一个新的text.txt文件,打开发现正式我们刚才写入的海绵宝宝

那么我们要是再执行一遍代码,只是写入的内容发生改变,那么结果是什么呢?

 fs.writeFile('text.txt', '派大星', 'utf-8', function(err) {
   console.log(err);// null
 }) 

这个时候我们再打开text.txt文件,发现里面的内容变成了派大星,也就是说使用wirteFile()会覆盖掉文件原来的内容。

此时,我们同样可以根据写入文件回调函数的参数返回的值来判断文件是否写入成功:如果返回的null,代表文件写入成功;否则写入失败。

结尾

通过node.js的fs模块,我们就可以实现对文件的读取以及写入了,本文章为我学习node.js的学习笔记,有不足之处望大佬们指点。

最后

整理了一套《前端大厂面试宝典》,包含了HTML、CSS、JavaScript、HTTP、TCP协议、浏览器、VUE、React、数据结构和算法,一共201道面试题,并对每个问题作出了回答和解析。

有需要的小伙伴,可以点击文末卡片领取这份文档,无偿分享

部分文档展示:



文章篇幅有限,后面的内容就不一一展示了

有需要的小伙伴,可以点下方卡片免费领取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/151700.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[2023] NAND闪存及控制器的市场趋势

一、NAND闪存市场分析据欧洲知名半导体分析机构Yole发布的报告显示,2020年起,NAND闪存市场发展趋势保持稳定增长,2021年,NAND闪存市场份额达到了近670亿美元(见图1),同年,NAND闪存总…

使用 Vagrant 对 VirtualBox 虚拟机磁盘扩容

使用Vagrant 对 VirtualBox 磁盘扩容 Vagrant 下载地址: https://www.vagrantup.com/downloads.html Vagrant版本 2.3.4 VirtualBox版本:7.0.4 1、在初次使用 Vagrant init 创建 VirtualBox 虚拟机时,会创建一个 Vagrantfile 文件 2、在 Vagrantfile…

CAS:60842-46-8;葡聚糖-荧光素;Dextran-FITC

Dextran-FITC、葡聚糖-荧光素、(葡聚糖-FITC) CAS NO: 60842-46-8 英文名称:: Dextran(3,6dihydroxy-3-oxospiro(isobenzofuran-1(3H],9-[9H]xanthen]-5(or 6]-yl]carbamothioate, average Mw of approximately 分子量&#xf…

java 微服务之docker基础入门 docker部署 镜像相关命令 容器命令 数据卷 DockerCompose Docker镜像仓库

初识Docker 项目部署的问题 什么是Docker 不同环境的操作系统不同,Docker如何解决?我们先来了解下操作系统结构 Docker与虚拟机 虚拟机是在一个系统内,运行另外一个系统 镜像和容器 镜像(Image):Docker将…

基于STM32 STC15和SU-03T离线语音模块的智能语音自拍器设计

一. 系统设计及框图 现在的自拍系统有很多是蓝牙控制的,我们这次介绍的是使用语音控制的拍照系统。 本系统通过MCU产生20kHZ左右的频率驱动蜂鸣器(占空比为50%即可),手机APP收到此特定频率的信号后会执行相应的拍照或切换镜头的…

Spring 响应式编程,真香!!!

一、前言 响应式编程是啥?为啥要有响应式编程?响应式流的核心机制是什么?Spring 响应式编程能解决我们平时开发的什么痛点?Spring 响应式编程有哪些应用场景?Spring 响应式编程未来的趋势如何? 开篇六连问…

必要条件和充分条件与分析问题的方法

作为一名软件工程师,大部分的工作时间都是在解决各种问题中度过的,相信大部分的工程师都有类似的感受。这些问题发生在不同的技术领域,不同的技术方向,不同的模块,甚至不同的环境下,不一而足,就…

韩顺平老师的Linux基础学习笔记 (下)

Linux学习笔记 前言:本系列笔记的参考由 2021韩顺平 一周学会Linux 总结而成,希望能给学习Linux的同学一些帮助。也感谢韩老师录制的视频给我带来了非常巨大的收获! 目录: 韩顺平老师的Linux基础学习笔记 (上)韩顺平老师的Linu…

swagger2 介绍+注解说明

简介: 为什么要用swagger,我的理由是方便,作为后端开放人员,最烦的事就是自己写接口文档和前端交互是不是需要各种参数很繁琐,项目集成swagger后就能自动生成接口文档,做到前端、后端联调接口文档的及时性和便利性。 …

Eureka与Nacos的区别

Eureka 工作原理图 Nacos工作原理图 Eureka与Nacos相同点 都支持服务注册和服务拉取。 都支持服务提供者心跳方式做健康检测。 Eureka与Nacos区别 Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式 临时实例心跳…

理解Java的线程安全问题

目录 目录 举例:三个窗口卖票 运行结果:出现重票 如何解决? 方式一:同步代码块,第一个例子 运行结果: 改进: 运行结果: 方法一:同步代码块的第二个例子。把锁和ti…

使用opencv进行脸部识别

1.读取人脸部图片 引入需要的库,并读取人脸的图片 import cv2 import matplotlib.pyplot as plt import numpy as np# 定义t2s函数,方便查看是否对图片进行RGB通道转换 def t2s(img):return cv2.cvtColor(img, cv2.COLOR_BGR2RGB)# 读取图片 img cv2.…

10个PMP冷知识,项目经理看完都说长见识

早上好,我是老原。每次聊起考证啊,我内心总是充满遗憾——毕竟现在的市场情况,让很多项目经理对考证都不看好。但是啊,这群吹证书无用论的小友,总让我想起前几年吹学习无用论的时候,多么的异曲同工&#xf…

PageHelper分页规则

1.问题 1.1.PageHelper先开启分页&#xff0c;后对list数据操作 Overridepublic PageInfo<HdQueryVo> getRecordsByView(int pageNo, int pageSize) {PageHelper.startPage(pageNo,pageSize);List<HdQueryVo> hdQueryVosByView actionMapper.getActionByView();…

TP6(thinkphp6)队列与延时队列

安装 在此我就不再略过TP6的项目创建过程了&#xff0c;大致就是安装composer工具&#xff0c;安装成功以后&#xff0c;再使用composer去创建项目即可。 think-queue 安装 composer require topthink/think-queue 项目中添加驱动配置 我们需要在安装好的config下找到 queu…

SAP工作流任务

前言 灵活工作流沿用的传统工作流的活动节点&#xff0c;只是不再体现在流程图上&#xff0c;工作流的活动根据是否需要代理人可以分为两类&#xff0c;一类是自动后台处理的步骤&#xff0c;另外一类是需要代理人处理的步骤&#xff08;一般为决策节点&#xff09;&#xff0c…

线程通信例子

目录 线程通信的例子&#xff1a;使用两个线程打印1-100。线程1&#xff0c;线程2&#xff0c;交替打印 涉及的3个方法&#xff1a; 运行结果&#xff1a; 把锁改为其他对象 运行结果报错&#xff1a; 改进&#xff0c;把notify和wait的调用者改为obj sleep()和wait()的…

【数据结构】—— Java实现单链表

Java实现单链表一、一链表的概念及结构二、头节点与头指针的异同三、代码实现一、一链表的概念及结构 链表是一种物理存储结构上非连续存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的引用链接次序实现的 。 注意&#xff1a; 从上图可以看出&#xff0c;链式结构在逻…

MobPush for SDK API

推送监听接口 (addPushReceiver) 描述&#xff1a;添加推送监听&#xff0c;可监听接收到的自定义消息(透传消息)、通知消息、通知栏点击事件、别名和标签变更操作。 /*** com.mob.pushsdk.MobPush.class* MobPush推送监听接口* param receiver 监听*/ public static void ad…

Databend 开源周报 #74

Databend 是一款强大的云数仓。专为弹性和高效设计&#xff0c;自由且开源。 即刻体验云服务&#xff1a;https://app.databend.com。 What’s New 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 Features & Improvements Meta watch client …