2016-06-14 3 views
2

特定のライン上でのファイルの読み込みを開始します数? createReadStreamを使用した場合、startパラメータを渡すことができます。これは、ドキュメントで説明されている:Node.jsのは、私たちが<code>readline</code>モジュールを使用して行毎にファイルを読み込むことができNode.jsのオン

optionsファイルからではなくファイル全体のバイトの範囲を読み取ることstartend値を含むことができます。

しかし、ここでstartは1バイトのオフセットであるため、これを使用して開始行を設定するのは複雑です。

このアプローチを採用して、特定の行のファイルの読み取りを開始するにはどうすればよいですか?

+1

改行がどこで発生するかを確認するには、ファイルを読む必要があります。ファイルを開いて、 '\ n'の直後のバイトにジャンプすることはできません。 –

答えて

4

ファイルは先頭行とカウント行から読み込んで、特定の行に移動した後にのみ処理を開始する必要があります。ファイルシステムに特定の行の開始位置を伝える方法はありません。

var fs = require('fs'); 
var readline = require('readline'); 
var cntr = 0; 

var rl = readline.createInterface({ 
    input: fs.createReadStream('filepath'); 
}); 

rl.on('line', function(line) { 
    if (cntr++ >= 100) { 
     // only output lines starting with the 100th line 
     console.log(`Line read: ${line}`); 
    } 
}); 
+0

実際には、この実装によって正確な行番号を指定することができます。tho –

関連する問題