私が持っている最小のファイルは> 850k行で、すべての行の長さは不明です。目標は、ブラウザでこのファイルからn
行を読み込むことです。完全にそれを読むことは起こりません。大きなテキストファイルのn行を読む
var n = 10;
var reader = new FileReader();
reader.onload = function(progressEvent) {
// Entire file
console.log(this.result);
// By lines
var lines = this.result.split('\n');
for (var line = 0; line < n; line++) {
console.log(lines[line]);
}
};
もちろん、ここでの問題は、それが最初の本当のファイル全体を試み、次に改行でそれを分割することです:
は、ここで私が持っているHTML <input type="file" name="file" id="file">
とJSです。したがって、n
の場合でも、を試してみると、ファイル全体が読み取られ、最終的にはファイルが大きくなると何も読み取られません。
どうすればよいですか?
注:私が読んでいるすべての行をconsole.log()
にすることができれば、関数全体を削除して最初から開始したいと思います。
* "すべての行が未知の長さである" - >は、ファイルは、このようなものであることを意味します
(0, (1, 2))
(1, (4, 5, 6))
(2, (7))
(3, (8))
編集:どこへ行く
やり方ものになるだろうfilereader api on big filesのように、私はファイルのn
行を読むためにそれを修正する方法を見ることができません...
var view = new Uint8Array(fr.result);
var string = new TextDecoder("utf-8").decode(view);
console.log("Chunk " + string);
をが、これは、全体としての最後の行を読まない場合がありますので、どのように後から行を決定しようとしている:あまりにUint8Array to string in Javascriptを使用することによって、そこから行うことができますか?例えば、ここでそれが印刷されたものです:
((7202), (u'11330875493', u'2554375661'))
((1667), (u'9079074735', u'6883914476',
*「...しかし、それは問題ではないはず。」*天国の名前であなたはそれが問題ではありませんと思わせる何か?行がどこから始まるかのインデックスがなく、与えられたインデックスでファイルをインクリメンタルに読み取る能力がなければ、絶対に重要です。 –
@ T.J.Crowder私は明確化して私の質問を更新しました、おそらく私はその声明を削除する必要があります、あなたは正しいです! – gsamaras
もう少し文脈が必要です。あなたはHTMLとJavaScriptを使用しています。このJavaScriptはウェブブラウザで動作しますか?または、HTML POSTのようなものからの応答として実行されるこのJavaScriptですか? – Alan