<h1>fs模块</h1>
Node.js内置的fs模块就是文件系统模块,负责读写文件。和所有其它JavaScript模块不同的是,fs模块同时提供了异步和同步的方法。
- 异步读文件
读取文本文件,文件编码为utf-8,异步读取的时候回调函数接收两个参数。
'use strict'
var fs=require('fs');
fs.readFile('file.txt','utf-8',function(err,data){
var buf=new Buffer('file.txt','utf-8');
if(err){
console.log(err);
}else{
console.log(buf);
}
});
读取一个图片文件
fs.readFile('snail.png',function(err,data){
if(err){
console.log(err);
}else{
console.log(data.toString('utf-8'));
console.log(data.length+"bytes");
}
});
- 同步读文件
'use strict';
var fs = require('fs');
var data = fs.readFileSync('sample.txt', 'utf-8');
console.log(data);
- 写文件
'use strict'
var fs=require('fs');
var data='hello,nigel'
fs.writeFile('file.txt',data,function(err){
if(err){
console.log(err);
}else{
console.log('ok');
}
});
*stat
如果我们要获取文件大小,创建时间等信息,可以使用fs.stat(),它返回一个Stat对象,能告诉我们文件或目录的详细信息。
'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);
}
}
});
改写成对应的同步函数: