テキストファイル の 読み込み
ファイル読み込みには fs.readFile() を利用します。
詳細は以下の API DOC に記載しますが、まずはとりあえず動かすためのサンプルコードを載せます。
サンプルコード
var fs = require("fs");
fs.readFile("./data/test.json", "utf8", (error, data) => {
if (error) {
return;
}
console.log(data);
});
解説
ファイルは fs.readFile() で読み込むことができます。
第1引数には読み込みたいファイルへのパス、第2引数にファイルのエンコード種別を指定します。
ファイル読み込みが終わると第3引数で指定されたコールバックが呼び出されます。
通常、ファイル読み込み前にファイルの存在チェックを行いますが… Node.js では推奨されていないようです。
(少なからずファイル存在確認するメソッド fs.stat() の説明には存在チェックは推奨しないと記載されていました。)
第3引数のコールバックに引き渡される error が設定されているかどうかを確認するようにします。
fs.readFile(path[, options], callback)
ファイルの読み込みを非同期に行います。 読み込みはファイル全体を一度に読み込みます。
- path
-
第1引数に指定する「ファイルパス」は実行している JavaScript ファイルからの相対パスまたは絶対パスで指定します。
- [options]
-
第2引数に指定できるエンコード種別は以下のものから選択します。 引数を指定しない場合、 第3引数のコールバックに引き渡される読み込みデータは RAWデータ (
Buffer) が返却されます。エンコード種別 説明 "ascii"7ビット ASCII データのみからなる 文字列。 このエンコーディングは高速で設定されていれば上位ビットが取り除かれます。 "utf8"マルチバイトエンコードされたUnicode文字列。 多くの Webページ および 文書フォーマットで UTF-8 を利用されています。 "utf16le"2バイト または 4バイト の リトルエンディアンエンコードされた Unicode 文字列。 サロゲートペア文字 (U+10000 から U+10FFFF) がサポートされます。 "ucs2""utf16le"のエイリアス。"base64"Base64 エンコード。 このエンコーディングで 文字列から Bufferを生成すると、RFC4648 5章 で定義されている "URL と ファイル名 で使える安全なアルファベット" を満たします。"latin1"Bufferを 1バイト文字列にエンコーディングします。"binary""latin1"のエイリアス。"hex"各バイトを2つの16進数で表現した文字列。 - callback(error, data)
-
第3引数のコールバックは エラーオブジェクト
errorと 読み取りデータdataのどちらかを受け取ります。 ファイルが存在しなかったり読めなかった場合は エラーオブジェクトerrorが設定され、きちんと読めた場合は 読み取りデータdataが設定されます。 ファイル存在チェックは事前に行わなくても エラーオブジェクトerrorの確認を行うことで同じことが実現できます。
参考記事
最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!