亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在node.js中一次只讀取一行文件?

在node.js中一次只讀取一行文件?

拉丁的傳說 2019-06-26 15:25:50
在node.js中一次只讀取一行文件?我試著一次讀一個大文件。我發現關于Quora的問題這是關于這個問題的,但我錯過了一些聯系,以使整件事合二為一。 var Lazy=require("lazy");  new Lazy(process.stdin)      .lines     .forEach(           function(line) {                console.log(line.toString());            }  );  process.stdin.resume();我想弄清楚的一點是,我可以一次從一個文件中讀取一行,而不是像這個示例中的STDIN那樣。我試過: fs.open('./VeryBigFile.csv', 'r', '0666', Process);  function Process(err, fd) {     if (err) throw err;     // DO lazy read   }但不管用。我知道,在緊要關頭,我可以回到使用類似PHP的東西,但我想弄清楚這一點。我不認為另一個答案會起作用,因為文件比我正在運行它的服務器的內存要大得多。
查看完整描述

3 回答

?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

對于這樣簡單的操作,不應該有任何依賴第三方模塊。放輕松點。

var fs = require('fs'),
    readline = require('readline');var rd = readline.createInterface({
    input: fs.createReadStream('/path/to/file'),
    output: process.stdout,
    console: false});rd.on('line', function(line) {
    console.log(line);});


查看完整回答
反對 回復 2019-06-26
?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

有一個非常好的模塊,用于逐行讀取文件,它稱為線路閱讀器

用它你只需寫:

var lineReader = require('line-reader');lineReader.eachLine('file.txt', function(line, last) {
  console.log(line);
  // do whatever you want with line...
  if(last){
    // or check if it's the last one
  }});

如果需要更多的控制,甚至可以使用“java樣式”接口迭代文件:

lineReader.open('file.txt', function(reader) {
  if (reader.hasNextLine()) {
    reader.nextLine(function(line) {
      console.log(line);
    });
  }});


查看完整回答
反對 回復 2019-06-26
  • 3 回答
  • 0 關注
  • 1244 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號