网站建设资讯

NEWS

网站建设资讯

Node文件系统fs异步与同步实例分析

这篇文章主要介绍了Node文件系统fs异步与同步实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Node文件系统fs异步与同步实例分析文章都会有所收获,下面我们一起来看看吧。

创新互联服务项目包括赞皇网站建设、赞皇网站制作、赞皇网页制作以及赞皇网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,赞皇网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到赞皇省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

同步与异步

fs中 带Sync的就是同步方式 不带的就是异步

在这先对同步和异步进行区别

同步:前面的代码先执行 后面的代码需要等待前面的代码执行完毕才会执行

异步:代码的执行不分先后 也就是说前面的代码执行 不会导致后面的代码阻塞 所以异步代码的执行结果的顺序是不一定的

在fs中对于文件的操作有异步和同步两种方式,异步中又分为普通异步和Promise异步两种 具体看代码

options中的flag的取值及含义

r: 读取文件,文件不存在则报错
r+:读取并写入文件,如果文件不存在则报错
rs:以同步的方式读取文件并通知操作系忽略本地文件系统缓存。(一般不用)
w:写入文件。如果文件不存在则创建该文件,如果文件存在则覆盖
wx:作用和w类似,如果路径已存在则失败。
w+:读取并写入文件。如果文件不存在则创建该文件,如果文件存在则覆盖
wx+:和w+类型,如果路径已存在则失败。
a:追加写入文件,如果文件不存在则创建文件
ax:作用和a类型,如果路径已存在则失败。
a+: 读取并追加写入文件,如果文件不存在则创建文件
ax+:作用和a+类似,如果路径已存在则失败。

使用之前先导入模块

let fs=require('fs');

一. 读取文件

1.readFileSync(path[, options]) 同步读取文件

path: 文件路径

options:可选参数 用于配置 读取文件的options都一样

//  同步读取 需要使用一个变量来接收读取出来的数据
let data=fs.readFileSync(path,{  // path为文件的路径
		encoding:'utf8',  // 指定字符集
		flag:'r'		  // 指定读取的模式  具体上面有
});	
console.log(data.toString());   // 默认读出来的是buffer类型 使用toString()转为字符串

2. readFile(path,[,options],callback(error,data)) 普通异步去读文件

// 普通异步读取不需要变量 直接在回调函数中读取数据  需要注意的是:
// 回调函数接收两个参数 第一个是error 也就是异常 说明文件读取失败 如果error为null 则读取成功 data即数据
fs.readFile(path,{encoding:'utf8',flag:'r'},function(error,data){
    console.log(data.toString())
});

3. fs.promises.readFile(path[, options]) promise方式读取文件

	// fs.promises.xxx 返回的是一个promise的对象 需要学习promise的语法 then()接收一个参数data 即数据
fs.promises.readFile(path).then(data=>{
   	console.log(data.toString());
})
// 或
let fsPromise=fs.promises.readFile(path);
fsPromise.then(data=>{
	console.log(data.toString());
})

二. 写入文件

appendFile效果和writeFile中flag:'a+'一样

path:文件路径 data为写入的数据 option同上

1. fs.writeFileSync(file, data[, options]) 同步写入文件

// data为需要写入的数据 options同上 写入的方式 a+为追加写入方式
fs.writeFileSync(path,data,{flag:'a+'}); // 返回值为undefined

2. fs.appendFileSync(file, data[, options]) 同步追加方式写入文件

fs.appendFileSync(path,data,{});  // 返回值为undefined

3. fs.writeFile(file, data[, options],callback) 普通异步写入

fs.writeFile(path,data,{flag:'a+'},function(error){
	if(err){
		console.log("写入失败");
	}else{
		console.log("写入成功");
	}})

4. fs.promises.writeFile(file, data[, options]) promise异步方式写入

fs.promises.writeFile(path,data,{flag:'a+'});  // 写入操作 没有返回值 也就不需要then了

5. fs.appendFile(path, data[, options], callback) 异步追加方式写入文件

fs.appendFile(path,appendData,function(){		})

6. fs.promises.appendFile(path, data[, options]) promise方式追加写入文件

fs.promises.writeFile(path,data);

关于“Node文件系统fs异步与同步实例分析”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Node文件系统fs异步与同步实例分析”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注创新互联行业资讯频道。


名称栏目:Node文件系统fs异步与同步实例分析
链接地址:http://cdweb.net/article/jhgdsp.html