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);
以上就是关于“fs异步与同步什么意思,怎样用”的相关知识,感谢各位的阅读,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注网络,小编每天都会为大家更新不同的知识。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: fs异步与同步什么意思,怎样用
本文地址: https://pptw.com/jishu/653508.html