一个关于node的fs模块读取文件的疑惑
发布于 10 年前 作者 ahalinux 4602 次浏览 最后一次编辑是 8 年前 来自 问答

目的:读取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是判断是否读取完了

回到顶部