方法說明:
以非同步的方式將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);
}
});
};