15 node基础——异步文件写入
问一:异步文件写入步骤:
1 导入模块
var fs=require("fs");
2.打开文件
fs.open(path,flafs[,mode],callback)
参数说明:
path:要打开的文件按的路径
flafs:打开文件之后要干什么? w表示写,r表示读
callback:回调函数,有回调函数表示没有返回值,那么是异步的方法,
回调函数有两个参数 :err 错误对象,如果没有错误则为null , fs文件的描述符:
//引入fs模块 var fs = require("fs"); //打开文件 fs.open("hello2.txt","w",function () { console.log(arguments);// 输出: {'0':null,'1':3} 第一个表示错误对象,第二个表示文件描述符 } });
3.异步写入:
fs.write(fd,string[,postion[,encoding]],callback)
fd:文件标识
string:写入内容
callback:回调函数
综合举列子:
异步函数,什么时候对文件操作完毕后,什么时候执行回调函数,所以执行顺序,不像同步函数:从上到下执行,异步可能是先执行下面的代码,
在执行回调函数的代码
var fdout; fs.open("hello2.txt","w",function (err , fd) { //判断是否出错 if(!err){ fdout=fd console.log("回调函数中的标识fdout",fdout); }else{ console.log(err); } }); console.log("程序向下执行~~~,回调函数外的fdout",fdout);
输出结果:
程序向下执行~~~,回调函数外的fdout undefined 回调函数中的标识fdout 3
综合举列子:
fs.open("hello2.txt","w",function (err , fd) { //判断是否出错 if(!err){ //如果没有出错,则对文件进行写入操作 fs.write(fd,"这是异步写入的内容",function (err) { if(!err){ console.log("写入成功~~"); } //关闭文件 fs.close(fd , function (err) { if(!err){ console.log("文件已关闭~~~"); } }); }); }else{ console.log(err); } });