一个关于node的fs模块读取文件的疑惑
目的:读取output.txt文件中第10-14字节并打印.
存在ouput.txt 文件内容为 ABCDEFGHIJKLMNOP
示例程序为:
var fs=require(‘fs’); fs.open(__dirname+’/a.txt’,‘r’,function(err,fd){ if(err){throw err;} var buffer=new Buffer(5); var readBytes=0;
(function readIt(){
fs.read(fd,buffer,readBytes,buffer.length-readBytes,10+readBytes,function(err,bytesRead){
if(err){throw err;}
readBytes+=bytesRead;
if(readBytes===buffer.length){
console.log(buffer);
}else{
readIt();
}
});
})();
});
上代码运行正确,但请教各位,代码中 readBytes+=bytesRead; 语句,以及下面的if循环到底起到了什么作用,是否可以给分析下,谢谢.
2 回复
这不是一次性读取文件内容的,每次readIt()
只读取了指定范围的内容,readBytes+=bytesRead
是累计计算读取的内容大小,if else
是判断是否读取完了
谢谢