Node.js v0.11.11 マニュアル & ドキュメンテーション


Table of Contents

File System#

Stability: 3 - Stable

File I/O は POSIX 標準の関数に対する単純なラッパーとして提供されます。 このモジュールを使用するには require('fs') してください。 全てのメソッドは非同期と同期の形式があります。

非同期の形式は常に最後の引数として完了コールバックを受け取ります。 引数として渡される完了コールバックはメソッドに依存しますが、 最初の引数は常に例外のために予約されています。 操作が成功で完了すると最初の引数は null または undefined となります

同期の形式では、全ての例外はすぐにスローされます。 例外は try/catch で捕まえることも、そのまま通過させることもできます。

非同期バージョンの例です:

var fs = require('fs');

fs.unlink('/tmp/hello', function (err) {
  if (err) throw err;
  console.log('successfully deleted /tmp/hello');
});

同期バージョンです:

var fs = require('fs');

fs.unlinkSync('/tmp/hello')
console.log('successfully deleted /tmp/hello');

非同期メソッドでは順序の保証はありません。 以下のような傾向のエラーがあります。

fs.rename('/tmp/hello', '/tmp/world', function (err) {
  if (err) throw err;
  console.log('renamed complete');
});
fs.stat('/tmp/world', function (err, stats) {
  if (err) throw err;
  console.log('stats: ' + JSON.stringify(stats));
});

fs.statfs.rename より先に実行される可能性がありrます。 正しい方法はコールバックをチェーンすることです。

fs.rename('/tmp/hello', '/tmp/world', function (err) {
  if (err) throw err;
  fs.stat('/tmp/world', function (err, stats) {
    if (err) throw err;
    console.log('stats: ' + JSON.stringify(stats));
  });
});

忙しいプロセスでは、プログラマはこれらの非同期バージョンを使うことが強く推奨されます。 同期バージョンはそれが完了するまでプロセス全体をブロックします - 全ての接続を停止します。

ファイル名には相対パスを使うことが出来ます。しかし、このパスは process.cwd() からの相対パスであることを思い出してください。

fs モジュールのほとんどの関数はコールバック引数を省略することができます。 そうすると、エラーを再スローするコールバックがデフォルトとして使用されます。 本来の呼び出し元のトレースを取得するには、NODE_DEBUG 環境変数を設定してください:

$ cat script.js
function bad() {
  require('fs').readFile('/');
}
bad();

$ env NODE_DEBUG=fs node script.js
fs.js:66
        throw err;
              ^
Error: EISDIR, read
    at rethrow (fs.js:61:21)
    at maybeCallback (fs.js:79:42)
    at Object.fs.readFile (fs.js:153:18)
    at bad (/path/to/script.js:2:17)
    at Object.<anonymous> (/path/to/script.js:5:1)
    <etc.>

fs.rename(oldPath, newPath, callback)#

非同期の rename(2)。完了コールバックには発生し得る例外以外に引数が渡されることはありません。

fs.renameSync(oldPath, newPath)#

同期の rename(2)。

fs.ftruncate(fd, len, callback)#

非同期の ftruncate(2)。完了コールバックには発生し得る例外以外に引数が渡されることはありません。

fs.ftruncateSync(fd, len)#

同期の ftruncate(2)。

fs.truncate(path, len, callback)#

非同期の truncate(2)。 完了コールバックには発生し得る例外以外に引数が渡されることはありません。

fs.truncateSync(path, len)#

同期の truncate(2)。

fs.chown(path, uid, gid, callback)#

非同期の chown(2)。完了コールバックには発生し得る例外以外に引数が渡されることはありません。

fs.chownSync(path, uid, gid)#

同期の chown(2)。

fs.fchown(fd, uid, gid, callback)#

非同期の fchown(2)。完了コールバックには発生し得る例外以外に引数が渡されることはありません。

fs.fchownSync(fd, uid, gid)#

同期の fchown(2)。

fs.lchown(path, uid, gid, callback)#

非同期の lchown(2)。完了コールバックには発生し得る例外以外に引数が渡されることはありません。

fs.lchownSync(path, uid, gid)#

同期の lchown(2)。

fs.chmod(path, mode, callback)#

非同期の chmod(2)。完了コールバックには発生し得る例外以外に引数が渡されることはありません。

fs.chmodSync(path, mode)#

同期の chmod(2)。

fs.fchmod(fd, mode, callback)#

非同期の fchmod(2)。完了コールバックには発生し得る例外以外に引数が渡されることはありません。

fs.fchmodSync(fd, mode)#

同期の fchmod(2)。

fs.lchmod(path, mode, callback)#

非同期の lchmod(2)。完了コールバックには発生し得る例外以外に引数が渡されることはありません。

Mac OS X でのみ利用可能です。

fs.lchmodSync(path, mode)#

同期の lchmod(2)。

fs.stat(path, callback)#

非同期の stat(2)。コールバックは 2 つの引数を受け取る (err, stats)で、 statsfs.Stats オブジェクトです。 詳細は fs.Stats の節を参照してください。

より詳しくは後述の fs.Stats の節を参照してください。

fs.lstat(path, callback)#

非同期の lstat(2)。コールバックは 2 つの引数を受け取る (err, stats)で、 statsfs.Stats オブジェクトです。 lstat() はパスがシンボリックリンクだった場合に、 参照先のファイルではなくそのリンク自身が調べられる点を除いて stat() と同じす。

fs.fstat(fd, callback)#

非同期の fstat(2)。コールバックは 2 つの引数を受け取る (err, stats) で、 statsfs.Stats オブジェクトです。 状態を取得するファイルをファイル記述子 fd で指定することを除いて、 fstat()stat() と同じです。

fs.statSync(path)#

同期の stat(2)。fs.Stats のインスタンスを返します。

fs.lstatSync(path)#

同期の lstat(2)。fs.Stats のインスタンスを返します。

fs.fstatSync(fd)#

同期の fstat(2)。fs.Stats のインスタンスを返します。

fs.link(srcpath, dstpath, callback)#

非同期の link(2)。完了コールバックには発生し得る例外以外に引数が渡されることはありません。

fs.linkSync(srcpath, dstpath)#

同期の link(2)。

fs.symlink(srcpath, dstpath, [type], callback)#

非同期の symlink(2)。 完了コールバックには発生し得る例外以外に引数が渡されることはありません。 type 引数に指定出来るのは 'dir''file'、または 'junction' (デフォルトは 'file') で、これは Windows でのみ有効です (他のプラットフォームでは無視されます)。 Windows のジャンクションポイントは対象に絶対パスを要求することに 注意してください。 'junction' を使うと、destination 引数は自動的に絶対パスに正規化されます。

fs.symlinkSync(srcpath, dstpath, [type])#

同期の symlink(2)。

fs.readlink(path, callback)#

非同期の readlink(2)。コールバックは 2 つの引数を受け取る (err, linkString)です。

fs.readlinkSync(path)#

同期の readlink(2)。シンボリックリンクの持つ文字列値を返します。

fs.realpath(path, [cache], callback)#

非同期の realpath(2)。コールバックは 2 つの引数を受け取る (err, resolvedPath)です。 相対パスを解決するために process.cwd を使用することができます。 cache はオブジェクトで、パスがキーとして含まれていればその値が 強制的に解決されたパスとして扱われ、fs.stat によってパスが実在するかどうかの 確認が省かれます。

例:

var cache = {'/etc':'/private/etc'};
fs.realpath('/etc/passwd', cache, function (err, resolvedPath) {
  if (err) throw err;
  console.log(resolvedPath);
});

fs.realpathSync(path, [cache])#

同期の realpath(2)。解決されたパスを返します。

fs.unlink(path, callback)#

非同期の unlink(2)。完了コールバックには発生し得る例外以外に引数が渡されることはありません。

fs.unlinkSync(path)#

同期の unlink(2)。

fs.rmdir(path, callback)#

非同期の rmdir(2)。完了コールバックには発生し得る例外以外に引数が渡されることはありません。

fs.rmdirSync(path)#

同期の rmdir(2)。

fs.mkdir(path, [mode], callback)#

非同期の mkdir(2)。完了コールバックには発生し得る例外以外に引数が渡されることはありません。 mode のデフォルトは 0777 です。

fs.mkdirSync(path, [mode])#

同期の mkdir(2)。

fs.readdir(path, callback)#

非同期の readdir(3)。ディレクトリの内容を読み込みます。 コールバックは 2 つの引数を受け取る (err, files)で、 files'.''..' を除くディレクトリ内のファイル名の配列です。

fs.readdirSync(path)#

同期の readdir(3)。'.''..' を除くディレクトリ内のファイル名の配列を返します。

fs.close(fd, callback)#

非同期の close(2)。完了コールバックには発生し得る例外以外に引数が渡されることはありません。

fs.closeSync(fd)#

同期の close(2)。

fs.open(path, flags, [mode], callback)#

非同期のファイルオープン。open(2) を参照してください。 フラグは以下になります:

  • 'r' - ファイルを読み込み専用でオープンします。 ファイルが存在しない場合は例外が発生します。
  • 'r+' - ファイルを読み書き両用でオープンします。 ファイルが存在しない場合は例外が発生します。
  • 'rs' - ファイルを同期モードで読み込むためにオープンします。 オペレーティングシステムにローカルファイルシステムのキャッシュを バイパスするように指示します。

    これは主に NFS にマウントされたファイルをオープンして、潜在的に古い ローカルキャッシュをスキップするのに役立ちます。 これはI/O パフォーマンスにとても深刻な影響を与えるため、必要でない限りは このフラグを使用しないでください。

    これは fs.open() を同期的なブロッキング呼び出しにするわけではないことに 注意してください。 それが必要な場合は fs.openSync() を使用すべきです。

  • 'rs+' - ファイルを読み書き両方でオープンし、OS に同期的にオープンするように 伝えます。これを使用する際の警告は 'rs' の注意を参照してください。
  • 'w' - ファイルを書き込み専用でオープンします。 ファイルは作成されるか (存在しない場合)、または長さ 0 に切り詰められます (存在する場合)。
  • 'wx' - 'w' と似ていますが、path が存在すると失敗します。
  • 'w+' - ファイルを読み書き両用でオープンします。 ファイルは作成されるか (存在しない場合)、または長さ 0 に切り詰められます (存在する場合)。
  • 'wx+' - 'w+' と似ていますが、path が存在すると失敗します。
  • 'a' - ファイルを追記用でオープンします。 ファイルが存在しない場合は作成されます。
  • 'ax' - 'a' と似ていますが、path が存在すると失敗します。
  • 'a+' - ファイルを読み込みおよび追記用でオープンします。 ファイルが存在しない場合は作成されます。
  • 'ax+' - 'a+' と似ていますが、path が存在すると失敗します。

mode はファイルモード (許可とスティッキービット) を設定しますが、 それはファイルが作成される場合に限られます。 デフォルトは 0666 です。

コールバックは 2 つの引数を受け取る (err, fd)です。

排他フラグ 'x' (open(2) の O_EXCL フラグ) は、 path が新しいファイルとして作成されることを保証します。 POSIX システムでは、path がたとえ存在しないファイルへのシンボリックだとしても 存在すると見なされます。 排他モードはネットワークファイルシステムでは動くかもしれませんし、 動かないかもしれません。

Linux では、ファイルを追記モードでオープンした場合、 ポジションを指定した書き込みは動作しません。 カーネルはポジション引数を無視し、データを常にファイルの最後に追記します。

fs.openSync(path, flags, [mode])#

同期版の open(2)。

fs.utimes(path, atime, mtime, callback)#

fs.utimesSync(path, atime, mtime)#

渡されたパスが参照するファイルのタイムスタンプを変更します。

fs.futimes(fd, atime, mtime, callback)#

fs.futimesSync(fd, atime, mtime)#

渡されたファイル記述子が参照するファイルのタイムスタンプを変更します。

fs.fsync(fd, callback)#

非同期の fsync(2)。完了コールバックには発生し得る例外以外に引数が渡されることはありません。

fs.fsyncSync(fd)#

同期の fsync(2)。

fs.write(fd, buffer, offset, length[, position], callback)#

fd で指定されたファイルに buffer を書き込みます。

offsetlength は書き込まれるバッファの部分を決定します。

position はデータが書き込まれる位置をファイルの先頭からのオフセットで示します。 position が数値型ではない (typeof position !== 'number') 場合、 データは現在の位置から書き込まれます。pwrite(2) を参照してください。

コールバックは 3 つの引数が与えられる (err, written, buffer) で、 writtenbuffer から書き込まれたバイト数を示します。

同じファイルに対してコールバックされるのを待つことなく fs.write() を何度も呼び出すことは、安全ではないことに注意してください。 このシナリオでは、 fs.createWriteStream() を強く推奨します。

Linux では、ファイルを追記モードでオープンした場合、 ポジションを指定した書き込みは動作しません。 カーネルはポジション引数を無視し、データを常にファイルの最後に追記します。

fs.write(fd, data[, position[, encoding]], callback)#

fd で指定されたファイルに data を書き込みます。 もし data が Buffer のインスタンスではない場合、値は強制的に文字列化されます。

position はデータが書き込まれる位置をファイルの先頭からのオフセットで示します。 position が数値型ではない (typeof position !== 'number') 場合、 データは現在の位置から書き込まれます。pwrite(2) を参照してください。

encoding は期待される文字列のエンコーディングです。

コールバックは引数 (err, written, string) を受け取ります。 written は渡された文字列から何 バイト が書き込まれたかを示します。 書き込まれたバイト数は文字列の文字数とは異なることに注意してください。 詳細は Buffer.byteLength を参照してください。

buffer の書き込みとは異なり、文字列全体が書き込まれます。 部分文字列を指定することはできません。 これは、書き込まれることになるデータのバイト単位のオフセットと、 文字列のオフセットは異なるかもしれないためです。

同じファイルに対してコールバックを待つことなく fs.write() を繰り返し呼び出すのは安全ではないことに注意してください。 このシナリオでは、fs.createWriteStream() を強く推奨します。

Linux では、追記モードでオープンしたファイルに対してポジションを指定した 書き込みは動作しません。カーネルはポジション引数を無視し、 常にデータをファイルの最後に追加します。

fs.writeSync(fd, buffer, offset, length[, position])#

fs.writeSync(fd, data[, position[, encoding]])#

同期版の fs.write()。書き込まれたバイト数を返します。

fs.read(fd, buffer, offset, length, position, callback)#

fd で指定されたファイルからデータを読み込みます。

buffer はデータが書き込まれるバッファです。

offset は書き込みを開始するバッファ内のオフセットです。

length は読み込むバイト数を指定する整数です。

position はファイルの読み込みを開始する位置を指定する整数です。 positionnull の場合、データは現在の位置から読み込まれます。

コールバックは3つの引数が与えられる (err, bytesRead, buffer) です。

fs.readSync(fd, buffer, offset, length, position)#

同期版の fs.readbytesRead の数を返します。

fs.readFile(filename, [options], callback)#

  • filename {String}
  • options {Object}
    • encoding {String | Null} デフォルトは null
    • flag {String} デフォルトは 'r'
  • callback {Function}

ファイル全体の内容を非同期に読み込みます。例:

fs.readFile('/etc/passwd', function (err, data) {
  if (err) throw err;
  console.log(data);
});

コールバックは 2 つの引数が渡される (err, data) で、data はファイルの内容です。

エンコーディングが指定されなければ、生のバッファが渡されます。

fs.readFileSync(filename, [options])#

同期版の fs.readFilefilename の内容を返します。

encoding オプションが指定されるとこの関数は文字列を返します。 そうでなければバッファを返します。

fs.writeFile(filename, data, [options], callback)#

  • filename {String}
  • data {String | Buffer}
  • options {Object}
    • encoding {String | Null} デフォルトは 'utf8'
    • mode {Number} デフォルトは 438 (8進数の 0666)
    • flag {String} デフォルトは 'w'
  • callback {Function}

非同期にデータをファイルに書き込みます。 ファイルが既に存在する場合は置き換えられます。 data は文字列またはバッファです。

data がバッファの場合、encoding オプションは無視されます。 デフォルトは 'utf8' です。

例:

fs.writeFile('message.txt', 'Hello Node', function (err) {
  if (err) throw err;
  console.log('It\'s saved!');
});

fs.writeFileSync(filename, data, [options])#

同期版の fs.writeFile

fs.appendFile(filename, data, [options], callback)#

  • filename {String}
  • data {String | Buffer}
  • options {Object}
    • encoding {String | Null} デフォルトは 'utf8'
    • mode {Number} デフォルトは 438 (8進数の 0666)
    • flag {String} デフォルトは 'a'
  • callback {Function}

非同期にデータをファイルに追加します。 ファイルが存在しなければ作成されます。 data は文字列またはバッファです。

例:

fs.appendFile('message.txt', 'data to append', function (err) {
  if (err) throw err;
  console.log('The "data to append" was appended to file!');
});

fs.appendFileSync(filename, data, [options])#

同期版の fs.appendFile

fs.watchFile(filename, [options], listener)#

Stability: 2 - Unstable.  Use fs.watch instead, if possible.

filename の変更を監視します。コールバックの listener はファイルがアクセスされる度に呼び出されます。

第 2 引数はオプションです. options が与えられる場合、それは boolean の persistentinterval の二つのメンバを含むオブジェクトです。 persistent はファイルが監視されている間、 プロセスが実行し続けることを示します。 interval は対象をポーリングする間隔をミリ秒で示します デフォルトは { persistent: true, interval: 5007 } です。

listener は現在の状態オブジェクトと前の状態オブジェクトの 2 つの引数を受け取ります:

fs.watchFile('message.text', function (curr, prev) {
  console.log('the current mtime is: ' + curr.mtime);
  console.log('the previous mtime was: ' + prev.mtime);
});

これらの状態オブジェクトは fs.Stat のインスタンスです。

もしファイルがアクセスされただけでなく、変更された時の通知が必要であれば、curr.mtimeprev.mtime を比較する必要があります。

fs.unwatchFile(filename, [listener])#

Stability: 2 - Unstable.  Use fs.watch instead, if possible.

filename の変更に対する監視を終了します。 listener が指定された場合は該当の listener だけが取り除かれます。 そうでなければ、全ての リスナが取り除かれ、 filenam の監視は事実上終了します。

監視されていないファイル名を指定した fs.unwatchFile() の呼び出しは エラーになるのではなく、何もしません。

fs.watch(filename, [options], [listener])#

Stability: 2 - Unstable.

filename の変更を監視します。 filename はファイルまたはディレクトリのどちらかです。 戻り値のオブジェクトは fs.FSWatcher です。

第 2 引数はオプションです。 もし指定されるなら、options はオブジェクトであるべきです。 サポートされる boolean のメンバは persistentrecursive です。 persistent はファイルが監視されている間、 プロセスが実行し続けることを示します。 recursive は監視対象が全てのサブディレクトリか、 そのディレクトリだけかを示します。 これは、ディレクトリが指定された場合で、サポートされるプラットフォームの場合のみ 適用されます (後述の「Caveats」を参照してください)。 デフォルトは { persistent: true, recursive: false } です。

リスナーコールバックは二つの引数 (event, filename) を与えられます。 event'rename' または 'change'、そして filename はイベントを 引き起こしたファイルの名前です。

Caveats#

fs.watch API はプラットフォーム間で 100% 完全ではありmせんし、 いくつかのシチュエーションで利用不可能です。

recursive オプションは OS X でのみサポートされます。 FSEventsだけがこのタイプのファイル監視をサポートしているので、 他のプラットフォームがすぐに追加される見込みはありません。

Availability#

この機能は下層のオペレーティングシステムが提供するファイルシステム変更の 通知に依存します。

  • Linux システムでは inotify が使われます。
  • BSD システム では kqueue が使われます。
  • OSX では、ファイルには kqueue、ディレクトリには 'FSEvents' が使われます。
  • SunOS システム (Solaris および SmartOS を含みます) では event ports が使われます。
  • Windows システムでは、この機能は ReadDirectoryChangesW に依存します。

何らかの理由で下層の機能が使えない場合、fs.watch() は使えません。 たとえば、ネットワークファイルシステム (NFS、SMB、その他) はしばしば 信頼できないか全く動作しません。

stat をポーリングする fs.watchFile() を使うことはできますが、 それは遅くて信頼性はより低くなります。

Filename Argument#

コールバックに提供される filename 引数は、 全てのプラットフォームでサポートされるわけではありません (現時点では Linux と Windows でのみサポートされます)。 サポートされるプラットフォームであっても、filename が常に提供されることが 保証されているわけではありません。 そのため、コールバックは filename 引数が常に提供されると仮定せず、 それが null だったときの代替手段を持つべきです。

fs.watch('somedir', function (event, filename) {
  console.log('event is: ' + event);
  if (filename) {
    console.log('filename provided: ' + filename);
  } else {
    console.log('filename not provided');
  }
});

fs.exists(path, callback)#

与えられたパスがファイルシステム上に存在するかどうか検査します。 そして引数の callback を真か偽か検査の結果とともに呼び出します。 例:

fs.exists('/etc/passwd', function (exists) {
  util.debug(exists ? "it's there" : "no passwd!");
});

fs.exists() は時代錯誤で、存在する理由は歴史的経緯だけです。 あなたのコードでこれを使うべき理由があってはいけません。

とりわけ、ファイルをオープンする前に存在をチェックするのは、 あなたのコードを競合条件に対して脆弱にするアンチパターンです: fs.exists()fs.open() の間に別のプロセスがファイルを 削除するかもしれません。 単純にファイルをオープンして、それが存在しない時はエラーを処理してください。

fs.existsSync(path)#

同期版の fs.exists です。

Class: fs.Stats#

fs.stat()fs.lstat()fs.fstat()、そしてそれらの同期版 から返される オブジェクトはこの型です。

  • stats.isFile()
  • stats.isDirectory()
  • stats.isBlockDevice()
  • stats.isCharacterDevice()
  • stats.isSymbolicLink() (fs.lstat() でのみ有効)
  • stats.isFIFO()
  • stats.isSocket()

util.inspect(stats) は通常のファイルに対して次のような文字列を返します。

{ dev: 2114,
  ino: 48064969,
  mode: 33188,
  nlink: 1,
  uid: 85,
  gid: 100,
  rdev: 0,
  size: 527,
  blksize: 4096,
  blocks: 8,
  atime: Mon, 10 Oct 2011 23:24:11 GMT,
  mtime: Mon, 10 Oct 2011 23:24:11 GMT,
  ctime: Mon, 10 Oct 2011 23:24:11 GMT,
  birthtime: Mon, 10 Oct 2011 23:24:11 GMT }

atimemtimebirthtime、そして ctimeDate オブジェクトであり、その値を比較するには適切な方法があるということに 注意してください。もっとも一般的に使われる getTime()1970年 1月 1日 からの経過時間をミリ秒単位で返します。 それは比較には十分ですが、曖昧な情報を表示するには別の方法があります。 より詳しい情報は MDN JavaScript Reference で探すことができます。

Stat Time Values#

stat オブジェクト中の時間は以下の意味を持ちます。

  • atime "Access Time" - ファイルが最後にアクセスされた時間。 mknod(2)utimes(2)、そして read(2)` システムコールによって変更されます。
  • mtime "Modified TIme" - ファイルが最後に変更された時間。 mknod(2)utimes(2)、そして write(2)` システムコールによって変更されます。
  • ctime "Change Time" - ファイルの属性 (iノードのデータ) が最後に変更された 時間 chmod(2)chown(2)link(2)mknod(2)rename(2)unlink(2)utimes(2)read(2)、そしてwrite(2)システムコールによって変更されます。
  • birthtime "Birth Time" - ファイルが作成された時間。 birthtime を利用できないファイルシステムでは、このフィールドは citme と同じか、1970-01-01T00:00Z (Unix エポック時刻の 0) を持ちます。 Darwin およびその他の FreeBSD 方言は、utimes(2) システムコールによって 現在の birthtime より前の時間を atime に明示的に設定した場合も 変更されます。

Node v0.12 より前、Windows システムでは ctimebirthtime を保持していました。v0.12 では、Unix システムでは決してそうではなかったように ctime は "creation time" ではないことに注意してください。

fs.createReadStream(path, [options])#

新しい ReadStream オブジェクトを返します (Readable Stream を参照してください)。

options は以下のデフォルト値を持つオブジェクトです:

{ flags: 'r',
  encoding: null,
  fd: null,
  mode: 0666,
  autoClose: true
}

ファイル全体を読み込む代わりに一部の範囲を読み込むため、 optionsstart および end を含めることができます。 startend はどちらも包含的で0から始まります。 encoding'utf8''ascii'、または 'base64' です。

autoClosefalse の場合、エラーが発生しない限りファイル記述子は クローズされません。ファイルをクローズし、ファイル記述子が リークしないようにするのはあなたの責務です。 autoClosetrue に設定されると (デフォルトの振る舞いです)、 error または end によってファイル記述子は自動的にクローズされます。

100 バイトの長さを持つファイルの最後の 10 バイトを読み込む例:

fs.createReadStream('sample.txt', {start: 90, end: 99});

Class: fs.ReadStream#

ReadStreamReadable Stream です。

Event: 'open'#

  • fd {Integer} ReadStream で使われる ファイル記述子。

ReadStream のファイルがオープンされた場合に生成されます。

fs.createWriteStream(path, [options])#

新しい WriteStream オブジェクトを返します (Writable Stream を参照してください)。

options は以下のデフォルト値を持つオブジェクトです:

{ flags: 'w',
  encoding: null,
  mode: 0666 }

options にはデータをファイルのどの位置に書き込むかを指定する start を含めることができます。 ファイルを置換するのではなく変更する場合は、 flags にデフォルトの w ではなく r+ が必要となります。

Class: fs.WriteStream#

WriteStreamWritable Stream です。

Event: 'open'#

  • fd {Integer} WriteStream で使われる ファイル記述子。

WriteStream のファイルがオープンされた場合に生成されます。

file.bytesWritten#

これまでに書き込まれたバイト数。 書き込みがキューイングされたままのデータは含まれません。

Class: fs.FSWatcher#

fs.watch() が返すオブジェクトはこの型です。

watcher.close()#

fs.FSWatcher に与えられたファイルの監視を終了します。

Event: 'change'#

  • event {String} ファイルシステム変更の種類です。
  • filename {String} 変更されたファイル名です (もし利用可能であれば)。

監視しているファイルまたはディレクトリに変更があると生成されます。 詳しくは fs.watch を参照してください。

Event: 'error'#

  • error Error object

エラーが発生すると生成されます。