node.js fs.writeFile方法入门教程

发布时间:2020-06-01编辑:脚本学堂
node.js fs.writeFile方法入门教程,包括了fs.writeFile的方法说明、语法、接收参数、实例与源码。

fs.writeFile方法

方法说明:
以异步的方式将data写入文件,文件已存在的情况下,原内容将被替换。

语法:
 

fs.writeFile(filename, data, [options], [callback(err)])

由于该方法属于fs模块,使用前需要引入fs模块(var fs= 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', 'Hello Node', function (err) {
  if (err) throw err;
  console.log('It's saved!');
});

源码:
 

复制代码 代码示例:
fs.writeFile = function(path, data, options, callback) {
  var callback = maybeCallback(arguments[arguments.length - 1]);
  if (util.isFunction(options) || !options) {
    options = { encoding: 'utf8', mode: 438 /*=0666*/, flag: 'w' };
  } else if (util.isString(options)) {
    options = { encoding: options, mode: 438, flag: 'w' };
  } else if (!util.isObject(options)) {
    throw new TypeError('Bad arguments');
  }
  assertEncoding(options.encoding);
  var flag = options.flag || 'w';
  fs.open(path, options.flag || 'w', options.mode, function(openErr, fd) {
    if (openErr) {
      if (callback) callback(openErr);
    } else {
      var buffer = util.isBuffer(data) ? data : new Buffer('' + data,
          options.encoding || 'utf8');
      var position = /a/.test(flag) ? null : 0;
      writeAll(fd, buffer, 0, buffer.length, position, callback);
    }
  });
};