Javascript 如何使用节点读取块中的文件?

Javascript 如何使用节点读取块中的文件?,javascript,node.js,file,Javascript,Node.js,File,我需要在节点中读取一个文件,但是,例如,如果文件大小为4KB,我需要读取前1K并在控制台上打印,然后,读取文件的第二Kb。。。一直到最后。问题是,我不知道如何在第一个Kb之后“停止”阅读,然后在那里继续阅读 有什么帮助吗 谢谢您可以使用fs.read读取固定数量的字节,并使用async进行循环 未测试代码: var buf = new Buffer(); var length=4096; // you can get this with fs.stat var position=0; fs.op

我需要在节点中读取一个文件,但是,例如,如果文件大小为4KB,我需要读取前1K并在控制台上打印,然后,读取文件的第二Kb。。。一直到最后。问题是,我不知道如何在第一个Kb之后“停止”阅读,然后在那里继续阅读

有什么帮助吗


谢谢

您可以使用
fs.read
读取固定数量的字节,并使用
async
进行循环

未测试代码:

var buf = new Buffer();
var length=4096; // you can get this with fs.stat
var position=0;
fs.open('/tmp/file', 'r', function(err, fd) {
  if(err) throw err;

  async.whilst(
    function() { position < length; },
    function(callback) {
      fs.read(fd, buf, null, 1024, position, function(err, bytesRead, buf) {
        if(err) callback(err);
        if(bytesRead!=1024) throw new Error('bytes read not 1024');
        console.log(buf.toString());
        position+=bytesRead;
        callback(); 
      });
    },
    function(err) {
      if(err) throw err;
    }
  );
});
var buf=new Buffer();
变量长度=4096;//你可以通过fs.stat获得这个
var位置=0;
打开('/tmp/file',r',函数(err,fd){
如果(错误)抛出错误;
异步的(
函数(){position
您必须展示您迄今为止所做的工作。