感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

Node.jsでファイルに書き込むサンプル

スポンサーリンク

Node.jsでファイルに書き込みする

ファイルにデータを書き込む関数は、fs.writeFile関数である。
以下のサンプルを実行してみる。

[sysmgr@localhost node]$ cat writetest.js 
var fs = require('fs');
var data = "write text test!";
fs.writeFile('writetest.txt', data , function (err) {
    console.log(err);
});

data変数の内容を、writetest.txtという名前のファイルを作って書き込む。

$ node writetest.js 

実行すると、
writetest.txtというファイルができていて、
開くとこんな感じ。

[sysmgr@localhost node]$ cat writetest.txt 
write text test![sysmgr@localhost node]$ 

改行なしでdata変数の内容が書き込まれた。

では、「ファイルが存在している状態」でこの関数を実行するとどうなるだろうか?
JavaScriptを以下のように、書き込み文言を書き換えた。
ついでに見にくいので改行コードを入れた。

var fs = require('fs');
var data = "second write!!\n";
fs.writeFile('writetest.txt', data , function (err) {
    console.log(err);
});   

で、実行。

[sysmgr@localhost node]$ node writetest.js 
null

結果は?

[sysmgr@localhost node]$ cat writetest.txt
second write!!

上書きされている!
fs.writeFile関数では、「上書きされる」ことがわかった。

Node.jsでファイルにデータを追記する

それでは、データを追記するにはどうしたらいいだろうか?
それは、fs.appendFile関数を使う。
上記のJavaScriptを以下のように修正する。

var fs = require('fs');
var data = "third write!!\n";
fs.appendFile('writetest.txt', data ,'utf8', function (err) {
    console.log(err);
});

実行すると、結果は・・・

[sysmgr@localhost node]$ cat writetest.txt 
second write!!
third write!!

ちゃんと追記された。
コールバックで書きたくない時は、

fs.appendFileSync()

関数を使えばいい。

勉強した本


前回の記事と同様、はじめての〜を使った。
関数の解説がわかりやすくて、サンプルがちゃんと載っているから迷わない本です。