情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

Node.jsでテキストファイルの行数を数える

2016/04/03

テキストファイルの行数を数えるためにはテキストファイルの内容を読み込み、改行コードの数を数えなければなりません。


テキストファイルの内容を読み込むストリームを作成するにはfs.createReadStream関数を使用します。

fs.createReadStream関数の詳しい使い方に関しては下の記事を参照してください。


ストリームのdataイベントのイベントハンドラで読み込まれたデータの断片に含まれる改行コードの数を数え、endイベントのイベントハンドラで最後の行分のカウントを行います。

これにより、テキストファイルの行数を数えることができます。


なお、ストリームの詳しい使い方に関しては下の記事を参照してください。

サンプルコード1

コマンドライン引数として与えられたテキストファイルの行数を数え、標準出力に出力します。

line-count.js

var fs = require('fs');

if (process.argv.length < 3) {
    console.error('lack argument.');
    process.exit(1);
}

try {
    var num = 0;
    var rs = fs.createReadStream(process.argv[2], 'utf-8');
    rs.on('data', function (data) {
        for (var i = 0; i < data.length; i++) {
            if (data[i] == '\n') {
                num++;
            }
        }
    });
    rs.on('end', function () {
        num++;
        console.log('%d', num);
    });
    rs.on('error', function (err) {
        console.error(err);
        process.exit(1);
    });
}
catch (err) {
    console.error(err);
    process.exit(1);
}

実行結果

C:\work\node>node line-count.js line-count.js
28

関連

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-Node.js