次のコードを書いたとき(アンモナイトで書いたが、それは問題ではないと思う)
("tail -f toTail.txt" lineStream) foreach(println(_))
、プログラムは意図したとおりに最後の行を表示しますが、その後ハングし、ファイルにさらに書き込んでも何も出力されません。
API は、無制限の出力を持つプロセスをどのようにサポートしますか?
書き込もうとしましval myStream = ("tail -f toTail.txt" lineStream_!)
たが、それでも書き込みが返されません
scala doc の内容は次のとおりです。
lineStream: run のようにすぐに戻り、生成される出力は Stream[String] を介して提供されます。その Stream の次の要素を取得すると、それが利用可能になるまでブロックされる場合があります。
したがって、ブロックする理由がわかりません
ところで、私は Ammonite API とまったく同じ動作をしています
%%("tail", "-f", "toTail.txt")
もう一度入力すると、メソッドはハングアップし、すぐには戻りません。