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);
}
});
};