fs模块
就是文件系统模块,负责读写文件。nodeJs
内置的fs模块
提供了异步和同步的方法node
var fs = require('fs');
fs.readFile('sample.txt', 'utf-8', function (err, data) {
if (err) {
console.log(err);
} else {
console.log(data);
}
});
复制代码
异步读取时,传入的回调函数接收两个参数,当正常读取时,err
参数为null
,data
参数为读取到的String
。当读取发生错误时,err
参数表明一个错误对象,data
为undefined
。这也是Node.js标准的回调函数:第一个参数表明错误信息,第二个参数表明结果。bash
'use strict';
var fs = require('fs');
var data = fs.readFileSync('sample.txt', 'utf-8');
console.log(data);
复制代码
若是同步读取文件发生错误,则须要用try...catch捕获该错误:异步
try {
var data = fs.readFileSync('sample.txt', 'utf-8');
console.log(data);
} catch (err) {
// 出错了
}
复制代码
'use strict';
var fs = require('fs');
var data = 'Hello, Node.js';
fs.writeFile('output.txt', data, function (err) {
if (err) {
console.log(err);
} else {
console.log('ok.');
}
});
复制代码
writeFile()
的参数依次为文件名、数据和回调函数。若是传入的数据是String
,默认按UTF-8编码写入文本文件,若是传入的参数是Buffer
,则写入的是二进制文件。回调函数因为只关心成功与否,所以只须要一个err参数。函数
'use strict';
var fs = require('fs');
fs.stat('sample.txt', function (err, stat) {
if (err) {
console.log(err);
} else {
// 是不是文件:
console.log('isFile: ' + stat.isFile());
// 是不是目录:
console.log('isDirectory: ' + stat.isDirectory());
if (stat.isFile()) {
// 文件大小:
console.log('size: ' + stat.size);
// 建立时间, Date对象:
console.log('birth time: ' + stat.birthtime);
// 修改时间, Date对象:
console.log('modified time: ' + stat.mtime);
}
}
});
复制代码