2018.4.13

ローカルファイルの操作(読み込み、書き込み、存在チェック)

Electronでローカルファイルの読み込みや書き込み、それにファイルの存在チェックなどを行う場合は、node.jsのFile System APIを使います。

以下、JSONファイルの読み込みや書き込みを行う場合の一例です。

目次

  • ファイルの読み込み
  • ファイルの書き込み
  • ファイルの存在チェック
  • 参考リンク

ファイルの読み込み

fs.readFile():非同期


const fs = require('fs')

fs.readFile('/etc/sample.json', 'utf8', (err, data) => {
  if (err) throw err
  console.log(data)
  let obj = JSON.parse(data)
})

fs.readFileSync():同期


let data = fs.readFileSync('/etc/sample.json', 'utf8')
console.log(data)
let obj = JSON.parse(data)

ファイルの書き込み

fs.writeFile():非同期


fs.writeFile('/etc/sample.json', JSON.stringify(obj), 'utf8', (err) => {
  if (err) throw err;
});

fs.writeFileSync():同期


fs.writeFileSync('/etc/sample.json', JSON.stringify(obj), 'utf-8')

ファイルの存在チェック

ファイルの存在チェックを行う方法は調べると2つの方法「fs.stat()、fs.access()」が紹介されていますが、fs.access()の方がアクセス権も踏まえてチェックしてくれます。

fs.access():非同期


fs.access('/etc/sample.json', fs.constants.R_OK | fs.constants.W_OK, (err) => {
  console.log(err ? 'no access!' : 'can read/write');
});

fs.accessSync():同期


try {
  fs.accessSync('/etc/sample.json', fs.constants.R_OK | fs.constants.W_OK);
  console.log('can read/write');
} catch (err) {
  console.error('no access!');
}

参考リンク

Electron】関連記事