node.js中的fs.writeFile方法使用说明
方法说明:
以异步的方式将data写入文件,文件已存在的情况下,原内容将被替换。
语法:
fs.writeFile(filename,data,[options],[callback(err)])
由于该方法属于fs模块,使用前需要引入fs模块(varfs=require(“fs”))
接收参数:
filename (String) 文件名称
data (String|Buffer) 将要写入的内容,可以使字符串或buffer数据。
options (Object) option数组对象,包含:
·encoding (string) 可选值,默认‘utf8′,当data使buffer时,该值应该为ignored。
·mode (Number) 文件读写权限,默认值438
·flag (String) 默认值‘w'
callback{Function} 回调,传递一个异常参数err。
例子:
fs.writeFile('message.txt','HelloNode',function(err){ if(err)throwerr; console.log('It\'ssaved!'); });
源码:
fs.writeFile=function(path,data,options,callback){ varcallback=maybeCallback(arguments[arguments.length-1]); if(util.isFunction(options)||!options){ options={encoding:'utf8',mode:438/*=0666*/,flag:'w'}; }elseif(util.isString(options)){ options={encoding:options,mode:438,flag:'w'}; }elseif(!util.isObject(options)){ thrownewTypeError('Badarguments'); } assertEncoding(options.encoding); varflag=options.flag||'w'; fs.open(path,options.flag||'w',options.mode,function(openErr,fd){ if(openErr){ if(callback)callback(openErr); }else{ varbuffer=util.isBuffer(data)?data:newBuffer(''+data, options.encoding||'utf8'); varposition=/a/.test(flag)?null:0; writeAll(fd,buffer,0,buffer.length,position,callback); } }); };