fs模块即文件系统,所有方法都有同步或异步形式,这里暂时只介绍异步方式;
readFile()
fs.readFile(path[, options], callback)
readFile方法的第一个参数是文件的路径,可以是绝对路径,也可以是相对路径。注意,如果是相对路径,是相对于当前进程所在的路径(process.cwd()),而不是相对于当前脚本所在的路径。
第二个参数指定字符编码,若未指定,返回原始buffer;
var fs = require('fs');
//readFile()
fs.readFile('../resource/Benz.jpg', function (err, data) {
if (err) {
console.log(err);
} else {
console.log(data.length + 'bytes');//255078bytes
}
});
fs.readFile('../resource/text.txt', 'utf-8', function (err, data) {
if (err) {
console.log(err);
} else {
console.log(data);//this is a test;
}
});
writeFile()
fs.writeFile(file, data[, options], callback)
异步地写入数据到文件,如果文件已经存在,则替代文件。 data 可以是一个字符串或一个 buffer。
如果 data 是一个 buffer,则忽略 encoding 选项。它默认为 'utf8'。
//writeFile()
fs.writeFile('../resource/message.txt', 'this is another test', function (err) {
if(err) throw err;
console.log('it\'s saved');//it's saved
});
mkdir()
fs.mkdir(path[, mode], callback)
新建目录,mode为权限值,默认为0o777(?)
//mkdir()
fs.mkdir('../resource/dir',function(err){
if(err) throw err;
});//在指定路径下创建了新目录dir
readdir()
fs.readdir(path[, options], callback)
读取一个目录的内容。 回调有两个参数 (err, files),其中 files 是目录中不包括 '.' 和 '..' 的文件名的数组。
//readdir()
fs.readdir('../resource',function(err,files){
if(err) {
console.log(err);
return;
}
console.log(files);//[ 'Benz.jpg', 'dir', 'message.txt', 'text.txt' ]
});
stat()
fs.stat(path, callback)
回调有两个参数 (err, stats)其中 stats是一个 fs.Stats对象。
//fs.stat()
fs.stat('../resource',function(err,stats) {
if(err) throw err;
console.log(stats);//返回一个Stats对象
console.log(stats.isFile());//false
console.log(stats.isDirectory());//true
console.log(stats.isBlockDevice());//false
console.log(stats.isCharacterDevice());//false
console.log(stats.isFIFO());//false
console.log(stats.isSocket());//false
});