Node.jsでファイルを読み込むサンプルコード!readFileについて。

node.jsでファイルを読み込む方法。

node.jsでファイルを扱いたいときには基本的には、fsモジュールを使ってる。

まあとりあえず、ファイルの読み込みから。

元のテキストファイルを用意する。

テキストファイルだよ!

そして、同じディレクトリにテキストファイルを用意し、読み込ませる。

const fs = require("fs") ;
fs.readFile("./test.txt","utf8",function(err,data){
    if(err) throw err ;
    console.log(data) ;
}) ;
/* 出力結果
テキストファイルだよ!
*/

/* エラーの場合
Error: ENOENT: no such file or directory, open './test.txt'
 at Error (native)
*/

簡単に解説をすると、

fs.readFile(<パス>,<文字コード>,<コールバック関数>) ってなるだけ!

コールバック関数の第二引数に読み取られたデータが与えられる。

第二引数のutf8がなかったらどうなるんだろうと思い、実行してみると

ちなみにだけど、readFileの第二引数の文字コードの指定をしないと、どうなるのか。(第二引数は指定しなくても良いのです。)

const fs = require("fs") ;
fs.readFile("./test.txt",function(err,data){
    if(err) throw err ;
    console.log(data) ;
}) ;
/* 出力結果
<Buffer e3 83 86 e3 82 ad e3 82 b9 e3 83 88 e3 83 95 e3 82 a1 e3 82 a4 e3 83 ab e3 81 a0 e3 82 88 ef bc 81 0a>
*/

このバイナリのデータ型を文字列に直したい場合には、toString()をすると、ちゃんと「テキストファイルだよ!」と出力されます。

実行例は以下のようになってます。

const fs = require("fs") ;
fs.readFile("./test.txt",function(err,data){
    if(err) throw err ;
    console.log(data.toString()) ;
}) ;
/* 出力結果
テキストファイルだよ!
*/

まあ純粋に、utf8にしとけば問題ないってことですね。

そしてついでにreadFileSyncも紹介しておきます。

var text = fs.readFileSync("./test.txt","utf8") ;
console.log(text) ;
/* 出力結果
テキストファイルだよ!
*/

これは返り値に、非同期型のerrかdataが返ってきます。

以上!

コメントを残す

メールアドレスが公開されることはありません。