node.jsでファイルの読み込み、新規作成、上書き、追記、削除
node.js のファイル操作の方法まとめです。
ファイル操作に関する公式モジュール fs があるのでそれを使って操作していきます。
非同期処理と同期処理が出来るメソッドがそれぞれ用意されていますが、非同期処理のほうが断然早いはずなので取り敢えず非同期での処理をまとめてみます。
ファイルの読み込み
非同期処理になって return で戻り値として得るのは厳しいので、コールバック内で処理を実行するのが簡単です。
node.js
//ファイル操作モジュールの追加
var fs = require('fs');
//ファイル読み込み関数
function readFile(path) {
fs.readFile(path, 'utf8', function (err, data) {
//エラーの場合はエラーを投げてくれる
if (err) {
throw err;
}
//ここに処理
console.log(data);
});
}
//使用例
readFile("test.txt");
引数 path にファイルのパスを指定してあげるとその中身を読み込みます。data の中身がそのファイルデータです。
readFile メソッドはコールバックの引数としてエラーの中身を取れるのでエラーがあった、例えばそのファイルが存在しないなど、場合はエラー文を投げてそこでスクリプトを止めます。止めてくれるのが大事。ここでは err にエラーの中身が入ります。
fs モジュールのメソッドはコールバックで大体エラーを取れるようなので、エラーがあった場合はエラーを投げるような感じで if による場合分けを入れて関数化しておきます。
ファイルの新規作成、上書き
ファイルの新規作成と上書きは同じ操作でできます。
そのファイルが存在しなければ新規作成になるし、もしも存在していれば上書きになります。
node.js
var fs = require('fs');
//ファイルの書き込み関数
function writeFile(path, data) {
fs.writeFile(path, data, function (err) {
if (err) {
throw err;
}
});
}
//使用例
writeFile("test.txt", "test OK!");
エラーの処理は同じです。path に新規作成したい、または上書きしたいファイル名、data に書き込みたい中身を指定します。
新しくディテクトリまでは作ってくれないので、パスは存在するディレクトリのみを使って指定します。
ファイルの追記
さっきは上書きでしたが、今度は追記です。
ファイルが存在していれば追記で、仮にそのファイルが存在していなければ新規作成になるようです。
node.js
var fs = require('fs');
//ファイルの追記関数
function appendFile(path, data) {
fs.appendFile(path, data, function (err) {
if (err) {
throw err;
}
});
}
//使用例
appendFile("test.txt", "Append OK!");
新規作成と作りは一緒です。path にファイルパス、data に追記したいテキストを入れます。
ファイルの削除
ファイルの削除は問答無用で消すので注意して実行します。
node.js
var fs = require('fs');
//ファイルの削除関数
function unlink(path) {
fs.unlink(path, function (err) {
if (err) {
throw err;
}
});
}
//使用例
unlink("test.txt");
path にファイルのパスを指定してあげると消してくれます。
まとめ
fs という専用のモジュールが用意されてるので簡単にいろんなことが出来ます。
ファイルの作成でディレクトリの作成までは自動で行ってくれないので、作る場合は mkdir メソッドを利用しつつという感じになるかと思います。