今日は,Node.jsの標準モジュールを使用してファイルを扱う方法を試していきます。
ファイルを読み込む
fs.readFile(path[, options], callback)
<!-- file.html -->
<!DOCTYPE html>
<html lang="jp">
<head>
<meta http-equiv="content-type"
content="text/html; charset=UTF-8">
<title>読み込まれるファイル</title>
</head>
<h1>読み込みファイル</h1>
<p>これは,読み込まれたHTMLファイルのページです。</p>
<body>
</html>
↑このfile.html
を読み込みます。
前提として,同階層に置いておきます。
const http = require('http');
const fs = require('fs');
http.createServer(function (req, res) {
fs.readFile('./file.html', 'utf8', function(err, data) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(data);
return res.end();
});
}).listen(3000);
非同期でファイル読み込みしています。
同期でファイルを読み込む場合はfs.readFileSync()
を使用します。
ファイルを作成・更新する
fs.opendir(path[, options], callback)
const fs = require('fs');
fs.open('createFile.txt','w', function(err) {
if (err) throw err;
console.log('保存しました。');
});
2番目の引数にフラグを持ち,フラグによって挙動が変わります。
w
の場合は,ファイルが存在する場合,切り捨てられます。
他のフラグについてはこちらを参照。
fs.appendFile(path, data[, options], callback)
const fs = require('fs');
fs.appendFile('createFile.txt','ファイルを作成します\n', function(err) {
if (err) throw err;
console.log('保存しました。');
});
createFile.txt
ファイルに2番目の引数の内容を追加するメソッド。
ファイルが存在しない場合ファイルを作成してくれます。
fs.writeFile(file, data[, options], callback)
const fs = require('fs');
fs.writeFile('createFile.txt','上書きします', function(err) {
if (err) throw err;
console.log('保存しました。');
});
createFile.txt
が存在する場合は,上書きして保存します。
存在しない場合はファイルを作成してくれます。
ファイルの削除
fs.unlink(path, callback)
const fs = require('fs');
fs.unlink('file.txt', function(err) {
if (err) throw err;
console.log('削除しました。');
});
指定したファイル(file.txt
)を削除してくれます。
ファイル名の変更
fs.rename(oldPath, newPath, callback)
const fs = require('fs');
fs.rename('./file.txt', './renameFile.txt', function(err) {
if (err) throw err;
console.log('名前を変更しました。');
});
1番目の引数から2番目の引数へファイル名を変更します。
1,2番目の引数はパスなので,ファイルを移動するためにも使えますね。
ファイルをコピー
fs.copyFile(src, dest[, mode], callback)
fs.copyFile('./createFile.txt', './copyFile.txt', function(err) {
if (err) throw err;
console.log('コピーしました。');
});
1番目の引数で指定したファイルを2番目の引数で指定したパスへコピーします。
まとめ
-
ファイル読み込み
- fs.readFile(path[, options], callback)
-
ファイルを作成・更新する
- fs.opendir(path[, options], callback)
- fs.appendFile(path, data[, options], callback)
- fs.writeFile(file, data[, options], callback)
-
ファイルの削除
- fs.unlink(path, callback)
-
ファイル名の変更
- fs.rename(oldPath, newPath, callback)
-
ファイルをコピー
- fs.copyFile(src, dest[, mode], callback)
他にもfs(ファイルシステム)モジュールには様々なメソッドが用意されています。
使いこなせれば,ShellScriptの代わりにNodo.jsを使うのもありですね。
それではまた明日。