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);
}
});
};
相关文章