«

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

时间:2024-3-2 11:13     作者:韩俊     分类: Javascript


方法说明:

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

    }

  });

};

标签: javascript

热门推荐