zl程序教程

您现在的位置是:首页 >  后端

当前栏目

node.js中的fs.writeFile方法使用说明

JS方法Node 使用 说明 fs
2023-06-13 09:15:32 时间

方法说明:

以异步的方式将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);
   }
 });
};