node.js文件操作系统实例详解

2020-06-17 05:35:11易采站长站整理

访问时间: 2016-7-16 12:40:49
修改时间: 2016-7-16 12:40:49

Process finished with exit code 0

同步的例子:


var fs = require('fs');
var getTimeDesc = function(d){
return [d.getFullYear(), d.getMonth()+1, d.getDate()].join('-') + ' ' + [d.getHours(), d.getMinutes(), d.getSeconds()].join(':');
};
var stats = fs.statSync('./fileForStat.txt');
console.log('文件大小: ' + stats.size);
console.log('创建时间: ' + getTimeDesc(stats.birthtime));
console.log('访问时间: ' + getTimeDesc(stats.atime));
console.log('修改时间: ' + getTimeDesc(stats.mtime));

访问/权限检测

例子:


// fs.access(path[, mode], callback)
var fs = require('fs');
fs.access('./fileForAccess.txt', function(err){
if(err) throw err;
console.log('可以访问');
});

同步版本:


// fs.accessSync(path[, mode])
var fs = require('fs');
// 如果成功,则返回undefined,如果失败,则抛出错误(什么鬼)
try{
fs.accessSync('./fileForAccess.txt');
}catch(e){
throw(e);
}

文件打开/关闭

比较底层的接口,实际需要用到的机会不多。需要用到的时候看下文档就行。

flags:文件打开模式,比如r、r+、w、w+等。可选模式非常多。
mode:默认是666,可读+可写。

fs.open(path, flags[, mode], callback) fs.openSync(path, flags[, mode]) fs.close(fd, callback) fs.closeSync(fd)

文件读取(底层)

相对底层的读取接口,参数如下

fd:文件句柄。
buffer:将读取的文件内容写到buffer里。
offset:buffer开始写入的位置。(在offset开始写入,还是offset+1?)
length:要读取的字节数。
position:文件从哪个位置开始读取。如果是null,那么就从当前位置开始读取。(读取操作会记录下上一个位置)

此外,callback的回调参数为(err, bytesRead, buffer)

fs.read(fd, buffer, offset, length, position, callback)

追加文件内容

fs.appendFile(file, data[, options], callback)

file:可以是文件路径,也可以是文件句柄。(还可以是buffer?)
data:要追加的内容。string或者buffer。
options

encoding:编码,默认是utf8
mode:默认是0o666
flag:默认是a

注意:如果file是文件句柄,那么

开始追加数据前,file需要已经打开。
file需要手动关闭。


var fs = require('fs');
fs.appendFile('./extra/fileForAppend.txt', 'helo', 'utf8', function(err){