Nodejsでファイル読み込みを簡単に行うサンプル

2018年7月27日

Nodejs テクノロジー プログラミング

テンプレートファイルや、特定のテキストデータなど、任意のローカルファイルをプログラムで読み込む場合のfs操作を備忘録として書き溜めておきます。

サンプルテキスト

001,AAA, 002,BBB, 003,CCC, 004,DDD, 同一階層にsample.txtを置いた状態で操作を行います。

open-read-close方式

PHPでのopen-read-closeと同じような感覚でファイル読み込みができます。 データのバイト数などをコントロールしたい場合は、こちらの方法で行います。 var fs = require("fs"); var filename = "./sample.txt"; var stat = fs.statSync(filename); var fd = fs.openSync(filename , "r"); var resData = fs.readSync(fd , stat.size , 0 , "utf8"); fs.closeSync(fd); console.log(resData[0]); "statSync"でファイルの状態を読み込んでから"readSync"の時に取得したstatのsizeを指定するのがポイントです。 さらに、返り値は書きのような配列になっているので、ファイル内容でる0番目を利用しています。 readSyncでの取得データ配列
[0] ファイル内容 [1] データの総バイト数
||| リファレンス # ファイル情報の読み込み fs.statSync("file-path"); 下記のようなデータが取得できます。 { dev: 85, mode: 33188, nlink: 1, uid: 0, gid: 0, rdev: 0, blksize: 4194304, ino: 11307600, size: 36, blocks: 8, atime: Sun Jul 22 2018 07:52:08 GMT+0900 (JST), mtime: Sun Jul 22 2018 07:10:49 GMT+0900 (JST), ctime: Sun Jul 22 2018 07:14:54 GMT+0900 (JST), birthtime: Sun Jul 22 2018 07:14:54 GMT+0900 (JST) }

ファイルオープン

fs.openSync("file-path" , "mode") ※ファイルパスは、相対パスの場合、"./"を先頭につけないとエラーになるので要注意!

ファイル読み込み

fs.readSync("open-data" , "read-bytes" , "start-byte-address" , "file-type");

read-bytes : 読み込むバイト数を入力

start-byte-address : 読み込み開始するアドレス

ファイルクローズ

fs.closeSync("open-data"); きちんと閉じてファイル操作を終了してあげましょう。

fileRead一発方式

ファイルの中身を一発で簡易に取得したい場合は、"fileReadSync"関数を使います。 PHPで言うところの"file_get_copntents()"関数と同じ感覚です。 var fs = require("fs"); var resData = fs.readFileSync("./sample.txt" , "utf8"); console.log(resData); openの場合も同じですが、ファイルの文字エンコードはきちんと指定しなければいけないので、今時の環境であれば、"utf8"に統一して使用するのがいいと思いますが、Excelで出力したcsvファイルなどは、"shift-jis"という問題もまだまだ健在なので、そうした点は注意しましょう。

読み込んだデータの扱い

上記の2つの方法のどちらで読み込んだ場合でも、ファイルを1つのstringとして読み込まれるので、ログデータなどのrecord方式の場合は、改行コードでsplitして配列化してあげましょう。 var datas = resData.split("\n");

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ