【JavaScript】Node.jsでテキストファイルを読み込み、文字数を取得する方法
はじめに:テキストファイルの文字数をカウントする
Node.jsファイルと同じディレクトリに「data.txt」というテキストファイルが配置されていると仮定します。このファイルの内容は以下のとおりです。
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s.
本記事では、このような外部テキストファイルをJavaScript(Node.js)で読み込み、ファイル内の文字数を返す関数の作成方法を解説します。
実装例:fsモジュールを使った文字数カウント
Node.jsでは標準搭載されているfsモジュールを使用することで、同期的にファイルを読み込めます。readFileSyncメソッドでファイル全体を文字列として取得し、文字列型が持つlengthプロパティを参照すれば、文字数を簡単に求めることができます。
それでは、実際のコードを見てみましょう。
const fs = require('fs');
const requireFile = async () => {
// ファイルをUTF-8形式で同期読み込み
const data = fs.readFileSync('./data.txt', 'utf-8');
// 文字列の長さ(文字数)を取得して返す
const len = data.length;
return len;
};
requireFile().then(res => console.log(res)).catch(err => {
console.log('エラーが発生しました');
});コードのポイント
- fs.readFileSync:ファイルを同期的に読み込むメソッドです。第二引数に
'utf-8'を指定することで、読み込んだデータを文字列として扱えます。 - data.length:JavaScriptの文字列は
lengthプロパティを持つため、これで文字数を取得できます。 - async/await構文:非同期処理として関数を定義し、Promiseチェーンで結果を受け取っています。
出力結果
上記のコードを実行すると、コンソールには以下のように表示されます。
399
このように、data.txtファイルに含まれる全文字数である「399」が出力されました。
まとめ
Node.jsのfsモジュールとreadFileSyncメソッドを使えば、外部テキストファイルの読み込みと文字数のカウントをわずか数行のコードで実現できます。大きなファイルを扱う場合は、パフォーマンスへの影響を考慮して非同期版のreadFileやストリームAPIの利用も検討するとよいでしょう。
-
【初心者向け】JavaScriptのFileとFileReaderを使ってファイルを読み込む方法
JavaScriptにおけるFileとFileReaderとは? JavaScriptでは、<input type=file>要素を使うことで、ユーザーにローカルファイルを選択させることができます。選択されたファイルはFileオブジェクトとして取得でき、ファイル名・サイズ・MIMEタイプなどの基本情報へアクセス可能です。 さらに、FileReaderオブジェクトを利用すれば、選択されたファイルの中身を非同期で読み込み、テキストやデータURLとして扱うことができます。 サンプルコード 以下は、JavaScriptでFileとFileReaderを使用して、ファイルの詳細情報を表示し
-
【PHP】文字列内の文字数を取得するプログラムの書き方
文字列の文字数を調べる方法PHPで文字列に含まれる文字数を取得するには、mb_strlen関数を使用するのが一般的です。この関数はマルチバイト文字(日本語など)にも対応しているため、どのような文字列でも正確に文字数をカウントできます。コード例<?php $my_string = "Hi there, this is a sample "; $len = mb_strlen($my_string); print_r("The