Node.js学习笔记(五)—— fs文件系统(Part1)

fs——文件系统

  • 在Node中,与文件系统的交互是非常重要的,服务器的本质就将本地的文件发送给远程的客户端
  • Node通过fs模块来和文件系统进行交互
  • 该模块提供了一些标准文件访问API来打开、 读取、写入文件,以及与其交互。
  • 要使用fs模块,首先需要对其进行加载 const fs = require("fs");

同步和异步调用

fs模块中所有的操作都有两种形式可供选择同步和异步。

  • 同步文件系统会阻塞程序的执行,也就是除非操作完毕,否则不会向下执行代码。
  • 异步文件系统不会阻塞程序的执行,而是在操作完成时,通过回调函数将结果返回。
打开&关闭文件(同步)
 fs.openSync(path, flags[, mode])
 fs.closeSync(fd)
打开&关闭文件(异步)
 fs.open(path, flags[, mode], callback)
 fs.close(fd, callback)
打开状态
模式说明
r读取文件, 文件不存在则出现异常
r+读写文件, 文件不存在则出现异常
rs在同步模式下打开文件用于读取
rs+在同步模式下打开文件用于读写
w打开文件用于写操作 , 如果不存在则创建,如果存在则截断
wx打开文件用于写操作 , 如果存在则打开失败
w+打开文件用于读写 ,如果不存在则创建 ,如果存在则截断
wx+打开文件用于读写 , 如果存在则打开失败
a打开文件用于追加 , 如果不存在则创建
ax打开文件用于追加 , 如果路径存在则失败
a+打开文件进行读取和追加 , 如果不存在则创建该文件
ax+打开文件用于读取和追加 , 如果路径存在则失败

一、同步文件写入

1.打开文件
fs.openSync(path, flags[, mode])
	- path 要打开文件的路径
	- flags 打开文件要做的操作的类型
		r 只读的
		w 可写的
	- mode 设置文件的操作权限,一般不传
 返回值:
 - 该方法会返回一个文件的描述符作为结果,我们可以通过该描述符来对文件进行各种操作
2.向文件中写入内容
fs.writeSync(fd, string[, position[, encoding]])
	- fd 文件的描述符,需要传递要写入的文件的描述符
	- string 要写入的内容
	- position 写入的起始位置
	- encoding 写入的编码,默认utf-8
3.保存并关闭文件
fs.closeSync(fd)
	- fd 要关闭的文件的描述符

在这里插入图片描述

二、异步文件写入

1.打开文件
fs.open(path, flags[, mode], callback)
- 用来打开一个文件
- 异步调用的方法,结果都是通过回调函数的参数返回的
- 回调函数两个参数:
	err 错误对象,如果没有错误则为null
	fd  文件的描述符
2.向文件中写入内容
// - 用来异步写入一个文件
fs.write(fd, string[, position[, encoding]], callback)
3.保存并关闭文件
// - 用来关闭文件
fs.close(fd, callback)
具体示例:
//引入fs模块
var fs = require("fs");


//打开文件
fs.open("hello2.txt","w",function (err , fd) {
	console.log("回调函数里的代码");
	//判断是否出错
	if(!err){
		//如果没有出错,则对文件进行写入操作
		fs.write(fd,"这是异步写入的内容",function (err) {
			if(!err){
				console.log("写入成功~~");
			}
			//关闭文件
			fs.close(fd , function (err) {
				if(!err){
					console.log("文件已关闭~~~");
				}
			});
		});
	}else{
		console.log(err);
	}
});

console.log("fs.open之后的代码~~~比回调函数里的代码先执行");
  输出:
 	fs.open之后的代码~~~比回调函数里的代码先执行
 	回调函数里的代码 
 	写入成功~~~~ 
 	文件已关闭~~~
Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值