ノードFS – NodeJSにおけるファイルの作成、読み込み、書き込み

ノード FSは、ノードJSのファイルシステムモジュールを表します。以前の投稿で、require()呼び出しを使用してノードJSモジュールをインポートする方法についてすでに議論しました。この投稿を読む前に、”ノードJSのモジュールのエクスポートとインポート”という投稿を読んで、require()呼び出しの使用法をご確認ください。

ノードFS

この投稿では、Node JSプラットフォームの「fs」モジュールについて説明します。FSはファイルシステムの略称です。このモジュールはIOやFileSystemやStreamモジュールとしても知られています。

NodeJSのFSモジュールの投稿要約

    1. Node FSモジュールの紹介

 

    1. Node JS ファイルの作成

 

    1. Node JS ファイルへの書き込み

 

    Node JS ファイルの読み込み

Node FS Moduleについての概要

Node FS モジュールは、ファイルシステムとやり取りし、ファイルの作成、読み込み、削除、更新などの入出力操作を行うための API を提供します。Node の他のモジュールである「npm」「http」などと同様に、Node JS の「fs」も基本的に Node JS プラットフォームに含まれています。Node JS FS モジュールをセットアップするための特別な手順は必要ありません。

ネイティブに日本語で言い換えると、以下のようになります:
“ノードのFSモジュールのインポート”

私たちは単純に、ノードのfsモジュールを私たちのコードにインポートして、IO操作のコードを書き始める必要があります。ノードのfsモジュールをインポートするには、次のようにします。

var fs = require("fs");

この `require()`コールは、Node JSの”fs”モジュールをキャッシュにインポートし、Node FSモジュールのオブジェクトを作成します。これが完了すると、node fsオブジェクトを使用して任意のIO操作を実行できます。${Eclipse_Workspace}がD:\RamWorkspaces\NodeWorkSpaceを指すものと仮定しましょう。これ以降は、この変数を私のEclipseのワークスペースを参照するために使用します。Javaや. NET、C/C++の開発者として、既にいくつかのIOプログラムを学習および書いてきたことを想定しています。IOまたはストリームは2つのタイプがあります。

  • Write Stream – To write data to a Stream.
  • Read Stream – To read data from a Stream.

Node.jsでファイルを作成する

今度は、Node JS FS APIを使用して新しいファイルを作成する方法について話し合います。

    1. エクリプスIDEでNode JSプロジェクトを作成してください。

前の例からpackage.jsonファイルをコピーし、必要な部分を更新してください。
{
“name”: “filesystem”,
“version”: “1.0.0”,
“description”: “ファイルシステムの例”,
“main”: “filesystem”,
“author”: “JournalDEV”,
“engines”:{
“node”:”*”
}
}

以下の内容を持つJavaScriptファイル、fs-create-file.jsを作成してください。
/**
* ノードFSの例
* ノードJSファイルの作成
*/
var fs = require(“fs”);

var createStream = fs.createWriteStream(“JournalDEV.txt”);
createStream.end();

コードの説明: var fs = require(“fs”)は指定されたNode FSモジュールをキャッシュにロードし、fsというオブジェクトに割り当てるためのrequire()呼び出しです。fs.createWriteStream(filename)呼び出しは、指定されたファイル名で書き込みストリームとファイルを作成するために使用されます。createStream.end()呼び出しは、開いたストリームを終了または閉じます。

fs-create-file.jsを実行する前に、まずファイルシステムプロジェクトの内容を確認し、”JournalDEV.txt”ファイルが存在しないことに気付きます。

${Eclipse_Workspace}/filesystemでコマンドプロンプトを開き、以下の画像に示すようにnodeコマンドを実行して、fs-create-file.jsファイルを実行してください。プロジェクトディレクトリの内容を確認してください。空の「JournalDEV.txt」というファイルが作成されていることに気付きます。

Node JSでファイルに書き込む

私たちはNodeのFS APIを使用して新しいファイルを作成し、その中にデータを書き込むことにします。これは前の例の続きです。

    1. ${Eclipse_Workspace}/filesystemフォルダから以前に作成された「JournalDEV.txt」を削除してください。

以下のコンテンツを持つJavaスクリプトファイル(fs-write-file.js)を作成してください。
/**
* Node FSの例
* Node JSでファイルに書き込む
*/
var fs = require(“fs”);

var writeStream = fs.createWriteStream(“JournalDEV.txt”);
writeStream.write(“こんにちは、JournalDEVのユーザーの皆さん。”);
writeStream.write(“ありがとうございます。”);
writeStream.end();

createStream.write(sometext)呼び出しは、ファイルにテキストを書き込むために使用されます。

コマンドプロンプトを${Eclipse_Workspace}/filesystemで開き、以下に示すようにnodeコマンドを実行してfs-write-file.jsファイルを実行してください。

${Eclipse_Workspace}/filesystemフォルダに移動し、「JournalDEV.txt」を開いてその内容を確認してください。新しいファイルが作成され、そのファイルに一部のデータが書き込まれました。

Node JSでファイルを読む

私たちはNode FS APIを使用して、既存のファイルの内容を開いて読み込み、その内容をコンソールに書き込むことになります。これは以前の例の続きです。ここでは、名前付きのJavaScript関数を使用します。これを理解するために、この例を確認してください。

    1. 以下の内容を持つJava Scriptファイル、fs-read-file1.jsを作成してください。

 

    1. /**

 

    1. * ノードFSファイルの読み込み

 

    1. * ノードJSファイルの読み込み

 

    1. */

 

    1. var fs = require(“fs”);

function readData(err, data) {
console.log(data);
}

fs.readFile(‘JournalDEV.txt’, ‘utf8’, readData);

コードの説明:readData()は2つのパラメータを受け取るJavaScript関数です。

err:エラーオブジェクトです。プログラムがファイルのオープンやデータの読み取りに失敗した場合、FSモジュールはこのパラメータにエラーメッセージを書き込みます。
data:データを保持する変数です。

この関数はdataパラメータを取り、そのデータをコンソールに表示します。fs.readFile()はNode JS FS APIです。次の3つのパラメータを取ります。

ファイル名
読み込むファイルデータの形式
JavaScript関数またはJavaScriptの匿名関数
readFile()は、指定した形式(第2パラメータ)で指定したファイル名(第1パラメータ)からデータを読み取り、第3パラメータで指定された関数を使用していくつかの操作を行います。ここでは、第3パラメータとしてプレーンなJavaScript関数を使用しています。次の例でJavaScriptの匿名関数の使用方法を見ていきましょう。この例では、readFile()が”JournalDEV.txt”ファイルからデータを読み取り、コンソールに書き込んでいます。’utf8’形式を使用しない場合、バイナリデータが取得されます。これは数分後に確認します。

${Eclipse_Workspace}/filesystemでコマンドプロンプトを開き、fs-read-file1.jsファイルを実行するためにnodeコマンドを実行してください。これで、コードがファイルを正常に開き、その内容を読み取り、コンソールに書き込んだことが確認できました。

Node.jsでバイナリとしてファイルを読み取る

今回はJavaScriptの匿名関数を使用してファイルからデータを読み込む方法を説明します。この例を見て、理解してください。以前のfs-read-file1.jsの例と似ていますが、匿名関数を使用しています。JavaScriptの匿名関数に慣れていない場合は、JavaScriptのチュートリアルを参照して理解を深めてください。以下の内容のJavaScriptファイル(fs-read-file2.js)を作成してください。

/**
 * Node FS File System Module
 * Node.js read file example
 */
var fs = require("fs");

fs.readFile('JournalDEV.txt', 'utf8', function(err, data) {
	  console.log(data);
});

コードの説明:ここでは、readFile()がJavaScriptの匿名関数を使用してファイルからデータを読み取り、そのファイルの内容をコンソールに書き込んでいます。このファイルを実行すると、fs-read-file2.jsの例と同じ出力が得られます。今度は、バイナリ出力を確認するために「utf8」のデータ形式を削除してください。

/**
 * Node FileSystem Module  
 * Node JS Read File Binary Data
 */
var fs = require("fs");

fs.readFile('JournalDEV.txt', function(err, data) {
	  console.log(data);
});
Node.js read file as binary data
[anyFSAPIObject] + Press . (dot) + After dot Press (CTRL + Space Bar)
Node.js FS module Enide IDE
コメントを残す 0

Your email address will not be published. Required fields are marked *