アジェンダ
以下のコードは、Node.jsを使って標準入力(キーボードなどからの入力)を読み取るために使用されるコードです。
const input = require("fs").readFileSync("/dev/stdin", "utf8");
このNode.jsの標準入力の書き方について分解してまとめます。
require("fs")
require
は、Node.jsでモジュール(追加の機能)を読み込むための関数です。
"fs"
は、ファイルシステム(File System)の略で、ファイルやディレクトリを操作するためのモジュールです。
readFileSync("/dev/stdin", "utf8")
readFileSync
readFileSync
は、ファイルを同期的(プログラムが次に進む前に、完全に読み取る)に読み取る関数です。つまり、ファイルの読み取りが完了するまで他の処理はブロックされます。
"/dev/stdin"
"/dev/stdin"
は、UNIX系のシステム(LinuxやMacなど)で使われる特別なファイルで、標準入力を指します。つまり、ここからデータを読み取ることになります。Windows環境では、通常 process.stdin
を使用します。
"utf8"
"utf8"
は、読み取るデータの文字エンコーディングを指定します。UTF-8は多くの文字(日本語を含む)を扱えるエンコーディング方式です。
全体を合わせると
const input = require("fs").readFileSync("/dev/stdin", "utf8");
このコードは、fs
モジュールを使って、標準入力からUTF-8形式でデータを読み取り、その内容を input
という変数に格納しています。
まとめ
-
require("fs")
: ファイルシステムモジュールを読み込む -
readFileSync
: ファイルを同期的に読み取る関数 -
"/dev/stdin"
: 標準入力を指すファイルパス -
"utf8"
: 文字エンコーディング方式