ファイルに書き込む様々な方法TweetNode.jsでは、ファイルにデータを書き込む様々な方法が用意されています。今回はよく使われる方法についてまとめてみます。(fs.writeFile)ファイルが存在しない場合は新規に作成し、ファイルが存在する場合は内容をすべて削除して書き込みます。console.log('正常に書き込みが完了しました');});バイナリサンプルでは文字列を書き込んでいますが、バイナリデータも可能です。定数dataを定義する行を書き換えてみてください。0x72]);モードを指定またファイルを開く際のモードはオプションで指定できます。以下でaモード(追加書き込みモード)としてファイルを開きます。console.log('正常に書き込みが完了しました');});モードの一覧はこのページの後半「ファイルを開く際のモード一覧」にまとめてあります。(fs.appendFile)先ほどのfs.writeFile()でaモードを指定すればよいのですが、ここでは別の方法もご紹介しておきます。(fs.write)以下のようなテキストファイルがあったとします。このNodeの場所をWorldに書き換える処理を書いてみます。Nodefs.write()の第3引数に書き込み始める先頭からのバイト数を指定することが可能です。});});実行すると置換が成功しました。(Stream)fs.write()やfs.writeFile()で何度も書き込もうとするとCallback地獄に突き落とされるわけですが、そんなときに重宝するのがStream。console.log(err.message);});stream.write()を必要なだけ実行し、最後にstream.end()を呼び出します。それ以降にstream.write()すると実行時エラーとなるので注意が必要です。エラー処理はerrorイベントを予め設定しておくだけです。モードを指定fs.createWriteStream()する際にモードを指定できます。デフォルトでは新規書き込みモード(w)になっています。options);モードの一覧はこのページの後半「ファイルを開く際のモード一覧」にまとめてあります。文字コードはfs.createWriteStreamでStreamを作成する際にまとめて指定することができます。options);もしくはstream.write()の第2引数でも指定可能です。"utf8");stream.end("\n");バッファリングファイルに細かく出力すると効率が悪い場合、ある程度メモリ上に蓄えてからまとめてファイルへ書き込む「バッファリング」も簡単に対応できます。Stream作成後に、事前にstream.cork()を呼んでおくとそれ以降はメモリ上にバッファリングされ、stream.uncork()かstream.end()が呼ばれるとファイルに書き出しが行われます。次のサンプルは1秒置きにStreamへ出力しますが、実際にファイルへ書き込まれるのは3回に1回(3秒に1回)です。-fなどすれば良いでしょう。console.log(e.message);}第3引数でモードも指定できます。console.log(e.message);}第3引数でモードも指定できます。console.log(e.message);}書き込む際に第3引数に整数を渡すと、書き込み始める場所を指定することができます。}};writer("file6.txt");こちらも同様に第3引数でモードが指定できます。}};writer("file7.txt");おなじみ第3引数でモードが指定できます。Flags」の項目を参照ください。読み取りモードで開きます。指定パスにファイルが存在しない場合は例外が発生します。rと同様に読み取りモードで開きますが、書き込みも可能です。指定パスにファイルが存在しない場合は例外が発生します。r+と同様の挙動ですが同期的なモードで開きます。OSのファイルキャッシュは利用しません。rs+はfs.open()などを同期的なモードに変更するわけではない点に注意です。同期的な処理をする場合はfs.openSync()などを利用します。書き込みモードで開きます。指定パスにファイルが存在しない場合は新規にファイルが作成され、もし存在する場合は内容をすべて削除した上で書き込みます。wモードと同様に書き込みモードで開きますが、もし指定パスにファイルが存在する場合はエラーになります。wモードと同様の挙動になりますが、読み込みを行うことも可能です。w+モードと同様の共同になりますが、もし指定パスにファイルが存在する場合はエラーになります。wx+は同名のファイルが存在する場合にエラーとなります。存在しない場合に書き込みができます。誤って内容を消さないようにという親切機能ですね。追加書き込みモードで開きます。指定パスにファイルが存在しない場合は新規にファイルが作成されます。aと同様に追加書き込みモードで開きますが、もし指定パスにファイルが存在する場合はエラーになります。aと同様の挙動になりますが、読み込みを行うことも可能です。a+と同様の挙動になりますが、もし指定パスにファイルが存在する場合はエラーになります。同期的な追加書き込みモードで開きます。指定パスにファイルが存在しない場合は新規にファイルが作成されます。asと同様の挙動になりますが、読み込みを行うことも可能です。ax+は同名のファイルが存在する場合にエラーとなります。存在しない場合にのみ追加書き込みができます。追加書き込みモードであればwほど致命的な症状にはならない場合が多いですが、保険はかけておいて損はないですね。ファイルを読み込む様々な方法https://blog.katsubemakito.net/nodejs/file-readNode.jsでは、ファイルからデータを読み込むだけでも様々なアプローチが用意されています。今回はよく使われる方法についてまとめてみます。非同期JavaScriptと言えば非同期処理ですね。自宅警備がてらゲームのお仕事や講師などしてご飯を食べてます。ご質問やリクエストなどお気軽に。メールアドレスの入力は任意です。書き込みが反映されるまで時間がかかります。コメントデータの処理方法の詳細はこちらをご覧ください。ブログをメールで購読メールアドレスを記入して購読すれば、更新をメールで受信できます。