nodejs异步读取不断增长的文件

时间:2017-09-11 10:14:46

标签: node.js fs file-read

我正在尝试以非常高的速率读取一个不断增长的文本文件(在末尾添加新行),假设每行大约100行,其中行大小约为200个字符。

我试过跟随,但是工作但是滞后一分钟左右。

var fs = require('fs');
var path = "D:\\testreadwrite.txt";

fs.watchFile(path, function() {
    console.log('File Changed ...');
    file = fs.readFileSync(path);
    console.log('File content at : ' + new Date() + ' is \n' + file);
    });

我真的不需要同步阅读但是滞后> 1分钟太高了,我每次都需要整个文件。我需要的是,为每一条新线路逐行读取数据并进行处理。所以我尝试下面的代码,我计划循环并传递每次迭代的偏移量。但是这个代码因某些未知原因而无法运行。请帮忙。

var fs = require('fs');
var path = "D:\\Work\\Jai Ho\\myapp\\public\\testreadwrite.txt";
fs.watch(path, function(event, filename) {
  if(filename){
            fs.stat(path, function(error, stats) {
              fs.open(path, "r", function(error, fd) {
               var buffer = new Buffer(stats.size);
                fs.read(fd, buffer, 0, buffer.length, null, function(error, bytesRead, buffer) {
                  var data = buffer.toString("utf8");
                  console.log(data);
                });
              });
            });

  }
  else{
    console.log('filename not provided')
  }
});  

0 个答案:

没有答案