通过fs模块使用流
fs模块同样有流接口,如下例:
var fs = require("fs");
var read_able = fs.createReadStream("1.txt");
var write_able = fs.createWriteStream("2.txt");
read_able.pipe(write_able);
当这段代码执行时,会将1.txt中的内容通过pipe“同步”到2.txt中,相当于从1.txt中读取,再写入2.txt。
文件监视
例程:
var fs = require("fs");
fs.watchFile(__dirname+'/test12.js',{persistent: true, interval: 300},function(status){
if(status){
console.log(status);
}
});
test12.js即本例程代码,执行时,如果我们对文件做修改,则会有如下提示:
文件锁
使用文件锁,可以防止一个文件同时被多人做出修改,以导致文件内容损坏等问题。
使用独占标记创建锁文件
fs打开文件时,可以使用一个x标记,这个标记可以让文件以独占方式打开,即:你打开后,别人就不能再打开。
例程:
var fs = require("fs");
fs.open("test.txt","wx",function(err){
if(err) return console.error(err);
});
运行后,如果它人或其它进程等想再打开,会出现如下错误提示:
除非文件被关闭,否则,别人不能使用。
如何加入关闭?将代码稍做修改:
var fs = require("fs");
fs.open("test.txt","wx",function(err,fp){
if(err) return console.error(err);
fs.close(fp);
});