[解決済み] node.jsでファイルを1行ずつ読み込む?
2022-03-15 15:28:14
質問
大きなファイルを一行ずつ読もうとしています。私は Quoraでの質問 しかし、全体がまとまるようにするには、いくつかの接続が不足しています。
var Lazy=require("lazy");
new Lazy(process.stdin)
.lines
.forEach(
function(line) {
console.log(line.toString());
}
);
process.stdin.resume();
私が解明したいのは、このサンプルのようにSTDINではなく、ファイルから一度に1行ずつ読み込む方法です。
試してみました。
fs.open('./VeryBigFile.csv', 'r', '0666', Process);
function Process(err, fd) {
if (err) throw err;
// DO lazy read
}
が、うまくいきません。 いざとなったらPHPのようなものを使えばいいのはわかっているのですが、これを解決したいのです。
ファイルは、私がそれを実行しているサーバーのメモリよりもはるかに大きいので、他の回答はうまくいかないと思います。
解決方法は?
Node.js v0.12以降、Node.js v4.0.0の時点では、安定版である リードライン コアモジュールです。ここでは、外部モジュールを使わずに、ファイルから行を読み取る最も簡単な方法を紹介します。
const fs = require('fs');
const readline = require('readline');
async function processLineByLine() {
const fileStream = fs.createReadStream('input.txt');
const rl = readline.createInterface({
input: fileStream,
crlfDelay: Infinity
});
// Note: we use the crlfDelay option to recognize all instances of CR LF
// ('\r\n') in input.txt as a single line break.
for await (const line of rl) {
// Each line in input.txt will be successively available here as `line`.
console.log(`Line from file: ${line}`);
}
}
processLineByLine();
あるいは、その代わりに
var lineReader = require('readline').createInterface({
input: require('fs').createReadStream('file.in')
});
lineReader.on('line', function (line) {
console.log('Line from file:', line);
});
がなくても、最終行は正しく読み込まれます(Node v0.12 以降)。
\n
.
アップデイト : この例は Node の API 公式ドキュメントに追加されました。 .
関連
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Git リポジトリで削除されたファイルを検索して復元する方法
-
[解決済み] Pythonでファイルやフォルダを削除する方法は?
-
[解決済み] Node.jsのプログラムにコマンドライン引数を渡すにはどうしたらいいですか?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Node.jsで終了する方法
-
[解決済み] Node.jsでファイルを書き込む
-
[解決済み] Node.jsアプリケーションをデバッグするにはどうすればよいですか?
-
[解決済み] Node.jsで環境変数を読み込む
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Vueがechartsのtooltipにクリックイベントを追加するケーススタディ
-
vue3.0プロジェクトのアーキテクチャを構築するための便利なツール
-
JavaScriptの配列共通メソッド解説
-
VUEグローバルフィルターの概念と留意点、基本的な使い方
-
[解決済み】React - TypeError: 未定義のプロパティ 'props' を読み取ることができない。
-
[解決済み] NodeJSを使ったCSVファイルのパース
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み】node.js:テキストファイルを配列に読み込む。(各行は配列のアイテムです)。
-
[解決済み] Node.jsを使ってテキストファイルを読み込む?
-
[解決済み] Node.jsで巨大なログファイルを解析する - 1行ずつ読む