首页 > 解决方案 > 我怎样才能在 Javascript 中只读取文件的第一行?

问题描述

我试图在 javascript 中仅读取 CSV 文件的第一行而不读取整个文件。到目前为止,我在 SO 上找到的解决方案仅包括使用 .split 仍然读取整个文件并按换行符拆分。我还尝试使用 FileReader 进度在第一行之后停止,但您无法控制正在读取的数量。我怎样才能使用进度或其他方法只获取第一行而不读取文件的其余部分?

标签: javascripthtmlfilecsv

解决方案


有一些已发布的库允许逐行读取文件。

在浏览器中,有line-navigator

var navigator = new LineNavigator(file[, options]);

navigator.readLines(indexToStartWith, numberOfLines,
  function (err, index, lines, isEof, progress) {
    // handle result here
  });

在 node.js 中,有line-reader

var lineReader = require('line-reader');

// read line by line:
lineReader.open('file.txt', function(err, reader) {
  if (err) throw err;
  if (reader.hasNextLine()) {
    reader.nextLine(function(err, line) {
      try {
        if (err) throw err;
        console.log(line);
      } finally {
        reader.close(function(err) {
          if (err) throw err;
        });
      }
    });
  }
  else {
    reader.close(function(err) {
      if (err) throw err;
    });
  }
});

推荐阅读