Nodejs-file-system
Node.js-ファイルシステム
Nodeは、標準POSIX関数の単純なラッパーを使用してファイルI/Oを実装します。 ノードファイルシステム(fs)モジュールは、次の構文を使用してインポートすることができます-
同期vs非同期
fsモジュールのすべてのメソッドには、同期フォームと非同期フォームがあります。 非同期メソッドは、最後のパラメーターを完了関数のコールバックとして受け取り、コールバック関数の最初のパラメーターをエラーとして受け取ります。 前者は実行中にプログラムをブロックすることはありませんが、2番目のメソッドはブロックするため、同期メソッドの代わりに非同期メソッドを使用することをお勧めします。
例
次の内容で input.txt という名前のテキストファイルを作成します-
次のコードで main.js という名前のjsファイルを作成しましょう-
次に、main.jsを実行して結果を確認します-
出力を確認します。
この章の次のセクションでは、主要なファイルI/O方法の優れた例を紹介します。
ファイルを開く
構文
以下は、非同期モードでファイルを開くためのメソッドの構文です-
パラメーター
ここに使用されるパラメータの説明があります-
- path -これは、パスを含むファイル名を持つ文字列です。
- flags -フラグは、開かれるファイルの動作を示します。 可能なすべての値については、以下で説明しています。
- mode -ファイルモード(許可およびスティッキービット)を設定しますが、ファイルが作成された場合のみです。 デフォルトは0666で、読み書き可能です。
- callback -これは、2つの引数(err、fd)を取得するコールバック関数です。
フラグ
読み取り/書き込み操作のフラグは-
Sr.No. | Flag & Description |
---|---|
1 |
r 読み取り用にファイルを開きます。 ファイルが存在しない場合、例外が発生します。 |
2 |
r+ 読み取りおよび書き込み用にファイルを開きます。 ファイルが存在しない場合、例外が発生します。 |
3 |
rs 同期モードで読み取るためにファイルを開きます。 |
4 |
rs+ ファイルを読み取りおよび書き込み用に開き、OSに同期的に開くように要求します。 これを慎重に使用することについては、「rs」の注意事項を参照してください。 |
5 |
w 書き込み用にファイルを開きます。 ファイルが作成される(存在しない場合)か、切り捨てられます(存在する場合)。 |
6 |
wx 'w’に似ていますが、パスが存在する場合は失敗します。 |
7 |
w+ 読み取りおよび書き込み用にファイルを開きます。 ファイルが作成される(存在しない場合)か、切り捨てられます(存在する場合)。 |
8 |
wx+ 「w +」と似ていますが、パスが存在する場合は失敗します。 |
9 |
a 追加するファイルを開きます。 ファイルが存在しない場合は作成されます。 |
10 |
ax 'a’に似ていますが、パスが存在する場合は失敗します。 |
11 |
a+ 読み取りおよび追加のためにファイルを開きます。 ファイルが存在しない場合は作成されます。 |
12 |
ax+ 'a +'に似ていますが、パスが存在する場合は失敗します。 |
例
次のコードを持つ main.js という名前のjsファイルを作成して、読み取りおよび書き込み用にファイルinput.txtを開きます。
次に、main.jsを実行して結果を確認します-
出力を確認します。
ファイル情報を取得する
構文
以下は、ファイルに関する情報を取得するためのメソッドの構文です-
パラメーター
ここに使用されるパラメータの説明があります-
- path -これは、パスを含むファイル名を持つ文字列です。
- callback -これは2つの引数(err、stats)を取得するコールバック関数です。ここで、 stats はfs.Stats型のオブジェクトで、以下の例で出力されます。
以下の例で印刷されている重要な属性とは別に、 fs.Stats クラスで利用可能ないくつかの便利なメソッドがあり、これらを使用してファイルタイプをチェックできます。 これらのメソッドを次の表に示します。
Sr.No. | Method & Description |
---|---|
1 |
stats.isFile() 単純なファイルのファイルタイプの場合、trueを返します。 |
2 |
stats.isDirectory() ディレクトリのファイルタイプの場合、trueを返します。 |
3 |
stats.isBlockDevice() ブロックデバイスのファイルタイプの場合、trueを返します。 |
4 |
stats.isCharacterDevice() キャラクターデバイスのファイルタイプの場合にtrueを返します。 |
5 |
stats.isSymbolicLink() シンボリックリンクのファイルタイプの場合、trueを返します。 |
6 |
stats.isFIFO() FIFOのファイルタイプの場合、trueを返します。 |
7 |
stats.isSocket() ファイルタイプがasocketの場合、trueを返します。 |
例
次のコードで main.js という名前のjsファイルを作成しましょう-
次に、main.jsを実行して結果を確認します-
出力を確認します。
ファイルを書く
構文
以下は、ファイルに書き込む方法の1つの構文です-
ファイルが既に存在する場合、このメソッドはファイルを上書きします。 既存のファイルに書き込みたい場合は、利用可能な別の方法を使用する必要があります。
パラメーター
ここに使用されるパラメータの説明があります-
- path -これは、パスを含むファイル名を持つ文字列です。
- データ-これは、ファイルに書き込まれる文字列またはバッファです。
- オプション-3番目のパラメータは、\ {encoding、mode、flag}を保持するオブジェクトです。 デフォルトで。 エンコードはutf8、モードは8進数値0666です。 フラグは「w」です
- callback -これは、書き込みエラーの場合にエラーを返す単一のパラメーターerrを取得するコールバック関数です。
例
私たちは次のコードを持つ main.js という名前のjsファイルを作成しましょう-
次に、main.jsを実行して結果を確認します-
出力を確認します。
ファイルを読む
構文
以下は、ファイルから読み取るメソッドの1つの構文です-
このメソッドは、ファイル記述子を使用してファイルを読み取ります。 ファイル名を使用してファイルを直接読み取る場合は、別の方法を使用する必要があります。
パラメーター
ここに使用されるパラメータの説明があります-
- fd -これは、fs.open()によって返されるファイル記述子です。
- バッファ-これは、データが書き込まれるバッファです。
- offset -これは書き込みを開始するバッファ内のオフセットです。
- 長さ-これは読み込むバイト数を指定する整数です。
- 位置-これは、ファイル内の読み取りを開始する場所を指定する整数です。 位置がヌルの場合、データは現在のファイル位置から読み取られます。
- callback -これは、3つの引数(err、bytesRead、buffer)を取得するコールバック関数です。
例
次のコードで main.js という名前のjsファイルを作成しましょう-
次に、main.jsを実行して結果を確認します-
出力を確認します。
ファイルを閉じる
構文
以下は、開いているファイルを閉じるための構文です-
パラメーター
ここに使用されるパラメータの説明があります-
- fd -これは、ファイルfs.open()メソッドによって返されるファイル記述子です。
- callback -これはコールバック関数です。完了コールバックには、可能な例外以外の引数は与えられません。
例
私たちは次のコードを持つ main.js という名前のjsファイルを作成しましょう-
次に、main.jsを実行して結果を確認します-
出力を確認します。
ファイルを切り捨てる
構文
以下は、開かれたファイルを切り捨てる方法の構文です-
パラメーター
ここに使用されるパラメータの説明があります-
- fd -これは、fs.open()によって返されるファイル記述子です。
- len -これは、ファイルが切り捨てられる前のファイルの長さです。
- callback -これはコールバック関数です。完了コールバックには、可能な例外以外の引数は与えられません。
例
私たちは次のコードを持つ main.js という名前のjsファイルを作成しましょう-
次に、main.jsを実行して結果を確認します-
出力を確認します。
ファイルを削除する
構文
以下は、ファイルを削除するメソッドの構文です-
パラメーター
ここに使用されるパラメータの説明があります-
- path -これはパスを含むファイル名です。
- callback -これはコールバック関数です。完了コールバックには、可能な例外以外の引数は与えられません。
例
私たちは次のコードを持つ main.js という名前のjsファイルを作成しましょう-
次に、main.jsを実行して結果を確認します-
出力を確認します。
ディレクトリを作成する
構文
以下は、ディレクトリを作成するメソッドの構文です-
パラメーター
ここに使用されるパラメータの説明があります-
- path -これはパスを含むディレクトリ名です。
- mode -これは設定するディレクトリの許可です。 デフォルトは0777です。
- callback -これはコールバック関数です。完了コールバックには、可能な例外以外の引数は与えられません。
例
私たちは次のコードを持つ main.js という名前のjsファイルを作成しましょう-
次に、main.jsを実行して結果を確認します-
出力を確認します。
ディレクトリを読む
構文
以下は、ディレクトリを読み取るためのメソッドの構文です-
パラメーター
ここに使用されるパラメータの説明があります-
- path -これはパスを含むディレクトリ名です。
- callback -これは2つの引数(err、files)を取得するコールバック関数です。filesは、 '。'を除くディレクトリ内のファイル名の配列です。および「..」。
例
私たちは次のコードを持つ main.js という名前のjsファイルを作成しましょう-
次に、main.jsを実行して結果を確認します-
出力を確認します。
ディレクトリを削除する
構文
以下は、ディレクトリを削除する方法の構文です-
パラメーター
ここに使用されるパラメータの説明があります-
- path -これはパスを含むディレクトリ名です。
- callback -これはコールバック関数です。完了コールバックには、可能な例外以外の引数は与えられません。
例
私たちは次のコードを持つ main.js という名前のjsファイルを作成しましょう-
次に、main.jsを実行して結果を確認します-
出力を確認します。
メソッドリファレンス
____Followingは、Node.jsで利用可能なファイルシステムモジュールのリファレンスです。 詳細については、公式ドキュメントを参照してください。
Sr.No | Method & Description |
---|---|
1 |
fs.rename(oldPath, newPath, callback) 非同期rename()。 可能性のある例外以外の引数は、完了コールバックに渡されません。 |
2 |
fs.ftruncate(fd, len, callback) 非同期のftruncate()。 可能性のある例外以外の引数は、完了コールバックに渡されません。 |
3 |
fs.ftruncateSync(fd, len) 同期ftruncate()。 |
4 |
fs.truncate(path, len, callback) 非同期truncate()。 可能性のある例外以外の引数は、完了コールバックに渡されません。 |
5 |
fs.truncateSync(path, len) 同期truncate()。 |
6 |
fs.chown(path, uid, gid, callback) 非同期chown()。 可能性のある例外以外の引数は、完了コールバックに渡されません。 |
7 |
fs.chownSync(path, uid, gid) 同期chown()。 |
8 |
fs.fchown(fd, uid, gid, callback) 非同期fchown()。 可能性のある例外以外の引数は、完了コールバックに渡されません。 |
9 |
fs.fchownSync(fd, uid, gid) 同期fchown()。 |
10 |
fs.lchown(path, uid, gid, callback) 非同期lchown()。 可能性のある例外以外の引数は、完了コールバックに渡されません。 |
11 |
fs.lchownSync(path, uid, gid) 同期lchown()。 |
12 |
fs.chmod(path, mode, callback) 非同期chmod()。 可能性のある例外以外の引数は、完了コールバックに渡されません。 |
13 |
fs.chmodSync(path, mode) 同期chmod()。 |
14 |
fs.fchmod(fd, mode, callback) 非同期fchmod()。 可能性のある例外以外の引数は、完了コールバックに渡されません。 |
15 |
fs.fchmodSync(fd, mode) 同期fchmod()。 |
16 |
fs.lchmod(path, mode, callback) 非同期lchmod()。 可能性のある例外以外の引数は、完了コールバックに渡されません。 Mac OS Xでのみ利用可能です。 |
17 |
fs.lchmodSync(path, mode) 同期lchmod()。 |
18 |
fs.stat(path, callback) 非同期stat()。 コールバックは、statsがfs.Statsオブジェクトである2つの引数(err、stats)を取得します。 |
19 |
fs.lstat(path, callback) 非同期lstat()。 コールバックは、statsがfs.Statsオブジェクトである2つの引数(err、stats)を取得します。 lstat()はstat()と同じですが、pathがシンボリックリンクの場合、参照するファイルではなく、リンク自体がstat-edになります。 |
20 |
fs.fstat(fd, callback) 非同期fstat()。 コールバックは、statsがfs.Statsオブジェクトである2つの引数(err、stats)を取得します。 fstat()は、stat()と同じですが、stat-ed対象のファイルがファイル記述子fdで指定されている点が異なります。 |
21 |
fs.statSync(path) 同期stat()。 fs.Statsのインスタンスを返します。 |
22 |
fs.lstatSync(path) 同期lstat()。 fs.Statsのインスタンスを返します。 |
23 |
fs.fstatSync(fd) 同期fstat()。 fs.Statsのインスタンスを返します。 |
24 |
fs.link(srcpath, dstpath, callback) 非同期link()。 可能性のある例外以外の引数は、完了コールバックに渡されません。 |
25 |
fs.linkSync(srcpath, dstpath) 同期link()。 |
26 |
fs.symlink(srcpath, dstpath[, type], callback) 非同期symlink()。 可能性のある例外以外の引数は、完了コールバックに渡されません。 type引数は、 'dir'、 'file'、または 'junction'(デフォルトは 'file')に設定でき、Windowsでのみ使用可能です(他のプラットフォームでは無視されます)。 Windowsジャンクションポイントでは、宛先パスが絶対パスである必要があることに注意してください。 「junction」を使用する場合、宛先引数は自動的に絶対パスに正規化されます。 |
27 |
fs.symlinkSync(srcpath, dstpath[, type]) 同期symlink()。 |
28 |
fs.readlink(path, callback) 非同期readlink()。 コールバックは、2つの引数(err、linkString)を取得します。 |
29 |
fs.realpath(path[, cache], callback) 非同期realpath()。 コールバックは、2つの引数(err、resolvedPath)を取得します。 process.cwdを使用して、相対パスを解決できます。 キャッシュは、特定のパス解決を強制したり、既知の実際のパスに対する追加のfs.stat呼び出しを回避するために使用できる、マッピングされたパスのオブジェクトリテラルです。 |
30 |
fs.realpathSync(path[, cache]) 同期realpath()。 解決されたパスを返します。 |
31 |
fs.unlink(path, callback) 非同期unlink()。 可能性のある例外以外の引数は、完了コールバックに渡されません。 |
32 |
fs.unlinkSync(path) 同期unlink()。 |
33 |
fs.rmdir(path, callback) 非同期rmdir()。 可能性のある例外以外の引数は、完了コールバックに渡されません。 |
34 |
fs.rmdirSync(path) 同期rmdir()。 |
35 |
fs.mkdir(path[, mode], callback) 非同期mkdir(2)。 可能性のある例外以外の引数は、完了コールバックに渡されません。 モードのデフォルトは0777です。 |
36 |
fs.mkdirSync(path[, mode]) 同期mkdir()。 |
37 |
fs.readdir(path, callback) 非同期readdir(3)。 ディレクトリの内容を読み取ります。 コールバックは、2つの引数(err、files)を取得します。filesは、ディレクトリ内の「。」を除くファイル名の配列です。および「..」。 |
38 |
fs.readdirSync(path) 同期readdir()。 「。」を除くファイル名の配列を返しますおよび「..」。 |
39 |
fs.close(fd, callback) 非同期のclose()。 可能性のある例外以外の引数は、完了コールバックに渡されません。 |
40 |
fs.closeSync(fd) 同期close()。 |
41 |
fs.open(path, flags[, mode], callback) 非同期ファイルを開きます。 |
42 |
fs.openSync(path, flags[, mode]) fs.open()の同期バージョン。 |
43 | fs.utimes(path, atime, mtime, callback) |
44 |
fs.utimesSync(path, atime, mtime) 指定されたパスによって参照されるファイルのファイルのタイムスタンプを変更します。 |
45 | fs.futimes(fd, atime, mtime, callback) |
46 |
fs.futimesSync(fd, atime, mtime) 指定されたファイル記述子によって参照されるファイルのファイルのタイムスタンプを変更します。 |
47 |
fs.fsync(fd, callback) 非同期fsync。 可能性のある例外以外の引数は、完了コールバックに渡されません。 |
48 |
fs.fsyncSync(fd) 同期fsync。 |
49 |
fs.write(fd, buffer, offset, length[, position], callback) fdで指定されたファイルにバッファを書き込みます。 |
50 |
fs.write(fd, data[, position[, encoding]], callback) fdで指定されたファイルにデータを書き込みます。 データがBufferインスタンスでない場合、値は文字列に強制されます。 |
51 |
fs.writeSync(fd, buffer, offset, length[, position]) fs.write()の同期バージョン。 書き込まれたバイト数を返します。 |
52 |
fs.writeSync(fd, data[, position[, encoding]]) fs.write()の同期バージョン。 書き込まれたバイト数を返します。 |
53 |
fs.read(fd, buffer, offset, length, position, callback) fdで指定されたファイルからデータを読み取ります。 |
54 |
fs.readSync(fd, buffer, offset, length, position) fs.readの同期バージョン。 bytesReadの数を返します。 |
55 |
fs.readFile(filename[, options], callback) ファイルのコンテンツ全体を非同期で読み取ります。 |
56 |
fs.readFileSync(filename[, options]) fs.readFileの同期バージョン。 ファイル名の内容を返します。 |
57 |
fs.writeFile(filename, data[, options], callback) データをファイルに非同期的に書き込み、ファイルが既に存在する場合はそれを置き換えます。 データは文字列またはバッファです。 |
58 |
fs.writeFileSync(filename, data[, options]) fs.writeFileの同期バージョン。 |
59 |
fs.appendFile(filename, data[, options], callback) ファイルにデータを非同期的に追加し、ファイルが存在しない場合は作成します。 データは文字列またはバッファです。 |
60 |
fs.appendFileSync(filename, data[, options]) fs.appendFileの同期バージョン。 |
61 |
fs.watchFile(filename[, options], listener) ファイル名の変更に注意してください。 コールバックリスナーは、ファイルにアクセスするたびに呼び出されます。 |
62 |
fs.unwatchFile(filename[, listener]) ファイル名の変更の監視を停止します。 リスナーが指定されている場合、その特定のリスナーのみが削除されます。 そうしないと、すべてのリスナーが削除され、ファイル名の監視が事実上停止します。 |
63 |
fs.watch(filename[, options][, listener]) ファイル名の変更を監視します。ファイル名はファイルまたはディレクトリです。 返されるオブジェクトはfs.FSWatcherです。 |
64 |
fs.exists(path, callback) ファイルシステムをチェックして、指定されたパスが存在するかどうかをテストします。 次に、trueまたはfalseでコールバック引数を呼び出します。 |
65 |
fs.existsSync(path) fs.existsの同期バージョン。 |
66 |
fs.access(path[, mode], callback) パスで指定されたファイルに対するユーザーの権限をテストします。 modeは、実行するアクセシビリティチェックを指定するオプションの整数です。 |
67 |
fs.accessSync(path[, mode]) fs.accessの同期バージョン。 アクセシビリティチェックが失敗した場合はスローし、それ以外は何もしません。 |
68 |
fs.createReadStream(path[, options]) 新しいReadStreamオブジェクトを返します。 |
69 |
fs.createWriteStream(path[, options]) 新しいWriteStreamオブジェクトを返します。 |
70 |
fs.symlink(srcpath, dstpath[, type], callback) 非同期symlink()。 可能性のある例外以外の引数は、完了コールバックに渡されません。 type引数は、 'dir'、 'file'、または 'junction'(デフォルトは 'file')に設定でき、Windowsでのみ使用可能です(他のプラットフォームでは無視されます)。 Windowsジャンクションポイントでは、宛先パスが絶対パスである必要があることに注意してください。 「junction」を使用する場合、宛先引数は自動的に絶対パスに正規化されます。 |