2

次のコードを書いたとき(アンモナイトで書いたが、それは問題ではないと思う)

("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")もう一度入力すると、メソッドはハングアップし、すぐには戻りません。

4

2 に答える 2