Node.jsでファイルを扱う

2021/02/19

今日は,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);

image

非同期でファイル読み込みしています。
同期でファイルを読み込む場合は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を使うのもありですね。

それではまた明日。


書いた人: こへ
音楽と漫画と読書とアニメとスノボが好き。多趣味でいろんなことに興味有ります。 誰しもが一度は使った事があるもののIoT開発をしてます。
Twitterフォローお願いします。