Rhino リハビリ3 標準入力する関数を作った
Rhinoの組み込み関数では標準入力が扱えないので、Javaのクラスライブラリを使う。Rhino(Javascript)には標準入出力がないので、Java の標準入出力を使う - himorogiの日記を参考に関数を実装してみた。
readStdin(msg)
コード
var readStdin = (function () { var stdin = new java.io.BufferedReader(new java.io.InputStreamReader(java.lang.System['in'])); return function (msg) { if (typeof msg === "string") print(msg); return stdin.readLine(); } })();
使い方
REPLで動かしてみないとイマイチ分かりづらいので、上記のコードをstdin.jsをいう名前で用意して使ってみる。
$ jss.sh Rhino 1.7 release 2 2009 03 22 js> load('stdin.js') js> var in = readStdin('# please input') # please input hogehoge js> print(in) hogehoge
ちなみにreadStdin()の引数を省略した場合は、入力時のメッセージを表示しない。