JavaScriptでファイルを読み書きする方法|Node.jsのfsモジュール徹底解説
結論から言うと、クライアントサイド(ブラウザ上)のJavaScriptでは、セキュリティ上の制約によりファイルの読み書きはできません。ファイル操作が可能なのはサーバーサイドであり、Node.jsのfsモジュールを使用することで実現できます。
fsモジュールは、ファイルシステムに対して同期的・非同期的な読み書きを行うための豊富なAPIを提供しており、Node.jsにおけるファイル操作の標準的な手段です。
fsモジュールの主な特徴
- 非同期処理:コールバックやPromiseを使い、他の処理をブロックせずにファイル操作が可能
- 同期処理:処理完了まで待機するfs.readFileSync()などのメソッドも提供
- 多様な操作:ファイルの作成・読み取り・書き込み・削除だけでなく、ディレクトリ操作にも対応
サンプルコード:ファイルへの書き込みと読み込み
それでは、実際にmain.jsというファイルを作成し、以下のコードを記述してみましょう。
var fs = require("fs");
console.log("既存のファイルに書き込みます");
// input.txtというファイルを作成し、「Simply Easy Learning!」という文字列を書き込む
fs.writeFile('input.txt', 'Simply Easy Learning!', function(err) {
if (err) {
return console.error(err);
}
console.log("データの書き込みが完了しました!");
console.log("書き込んだばかりのデータを読み込みます");
// 書き込んだファイルを読み込み、内容をすべてコンソールに出力する
fs.readFile('input.txt', function (err, data) {
if (err) {
return console.error(err);
}
console.log("非同期読み込み: " + data.toString());
});
});プログラムの実行方法
ファイルを保存したら、ターミナルで次のコマンドを実行して結果を確認します。
$ node main.js
実行結果
既存のファイルに書き込みます データの書き込みが完了しました! 書き込んだばかりのデータを読み込みます 非同期読み込み: Simply Easy Learning!
このように、fs.writeFile()でファイルへの書き込みを行い、その完了後にfs.readFile()で内容を読み出せます。両メソッドとも非同期で動作するため、コールバック関数内でerrオブジェクトをチェックするエラー処理が基本となります。
まとめ
ブラウザ上のJavaScriptはセキュリティの観点からファイルシステムへ直接アクセスできませんが、Node.jsのfsモジュールを使えばサーバーサイドで自由にファイルを読み書きできます。まずはwriteFile()とreadFile()といった基本APIから試してみるのがおすすめです。fsモジュールの詳細については、Node.js公式のファイルシステム解説ページも参考にしてください。
-
JavaScriptでJSON配列からデータを読み取る方法をサンプルコード付きで解説
Web開発では、APIから取得したJSONデータを処理する場面が非常によくあります。本記事では、JavaScriptを使ってJSON配列からデータを読み取り、画面に表示する方法を、実際に動作するサンプルコードとともにわかりやすく解説します。 JSON配列からデータを読み取る基本の流れ JSON形式の文字列をJavaScriptで扱うには、まずJSON.parse()メソッドで文字列をJavaScriptのオブジェクト(配列)に変換します。変換後は、forEach()メソッドなどを活用して、配列の各要素に格納された値へ簡単にアクセスできます。 サンプルコード <!DOCTYPE htm
-
PythonのopenpyxlモジュールでExcelファイルを読み書きする方法【初心者向け完全ガイド】
Pythonには、Excelファイル(.xlsx)を操作するためのopenpyxlという便利なモジュールが用意されています。このモジュールを使えば、Excelファイルの新規作成、データの書き込み・読み取り、シートの追加や管理など、さまざまな操作をプログラムから自動的に行うことができます。 本記事では、openpyxlの基本的な使い方を、実際に動作するサンプルコードとともに順番に解説していきます。 openpyxlのインストール方法 openpyxlは標準ライブラリではないため、まずインストールが必要です。コマンドプロンプト(またはターミナル)で以下のコマンドを実行してください。 pip ins