Node.jsでテキストファイルを配列として読み込む方法(readFileSync/readFile)
Node.jsでは、テキストファイルを読み込み、その内容を配列(Array)として取得することができます。取得した配列は行ごとのデータ処理に活用できるほか、単にファイルの中身を確認する用途にも使えます。ファイルの読み込みには標準モジュールの「fs」を使用し、同期処理向けのfs.readFileSync()と非同期処理向けのfs.readFile()の2つのメソッドが用意されています。いずれの方法も、比較的大きなテキストファイルの読み込みにも対応可能です。
例1:readFileSync()による同期的な読み込み
まず「fileToArray.js」という名前のファイルを作成し、以下のコードをコピーしてください。ファイル作成後、次のコマンドでプログラムを実行します。
node fileToArray.js
fileToArray.js
// fsモジュールのインポート
let fs = require("fs")
// ファイル名を受け取り、内容を行ごとの配列として返す関数を定義
const readFileLines = filename =>
fs.readFileSync(filename)
.toString('UTF8')
.split('\n');
// 関数を呼び出してファイルを読み込む
let arr = readFileLines('tutorialsPoint.txt');
// 結果の配列を出力
console.log(arr);
実行結果
C:\home\node>> node fileToArray.js
[ 'Welcome to TutorialsPoint !',
'SIMPLY LEARNING', '' ]
このコードでは、readFileSync()でファイル全体を一度に読み込み、UTF8形式の文字列に変換した後、改行文字を区切りとして分割することで配列化しています。処理が完了するまで次の行に進まない同期的な読み込みのため、小規模なファイルやスクリプトの初期化処理などに向いています。
例2:非同期のreadFile()を使った読み込み
続いて、非同期処理でファイルを読み込む例を見てみましょう。
// fsモジュールのインポート
var fs = require("fs")
// readFileでファイルを非同期に読み込む
fs.readFile('tutorialsPoint.txt', function(err, data) {
if(err) throw err;
var array = data.toString().split("\n");
for(i in array) {
// 配列の内容を1行ずつ出力
console.log(array[i]);
}
});
実行結果
C:\home\node>> node fileToArray.js Welcome to TutorialsPoint ! SIMPLY LEARNING
readFile()は非同期で動作するため、ファイルの読み込みが完了した時点でコールバック関数が呼び出されます。エラーが発生した場合は例外をスローし、正常に読み込めた場合はデータを文字列に変換して改行ごとに分割し、各行を順番に出力しています。イベントループをブロックしないため、Webサーバーなど他の処理と並行して動作させる必要がある大規模なアプリケーションでは、この非同期方式の利用が推奨されます。
-
テキスト(TXT・CSV)ファイルをExcelファイルに変換する方法
メモ帳などで作成したテキストファイルに商品リストなどのデータがあり、それをMicrosoft Excelに取り込みたいという場面はよくあります。実は、Excelにはテキストファイル(.txt や .csv)の内容をそのままスプレッドシートに読み込む機能が標準で搭載されており、手入力の手間を大幅に省くことができます。 たとえば、Notepad(メモ帳)や.txtファイルに保存された商品リストを、Excelの1つの列として読み込みたいとします。これを実現する方法は主に2つあります。1つ目は、テキストファイルからすべての文字列を手動でコピー&ペーストする方法。2つ目は、Excelに組み込まれたインポ
-
テキストファイルからExcelにデータをインポートする3つの方法
必要なデータがテキストファイルに保存されている場合、そのデータをExcelブックに取り込んで、さまざまな操作や分析を行いたいことがあります。この記事では、テキストファイルからExcelへデータをインポートするための、シンプルかつ効果的な3つの方法をわかりやすく解説します。 説明には、次のようなテキストファイル内のデータをサンプルとして使用します。このデータには、ある会社の営業担当者(Salesman)、製品(Product)、売上(Sales)の情報が含まれています。これらの情報をExcelワークシートに取り込んでいきましょう。 テキストファイルからExcelにデータをインポートする3つの方