可能でしょうか?そうであればどうしますか? WindowsまたはLinuxのコマンドラインで動作する通常の>
および>>
は、このコンテキストでは機能しません。Scalaインタラクティブインタプリタ(REPL) - 出力をテキストファイルにリダイレクトする方法は?
答えて
あなたは、コンソールからprogrammaticalyそれを行うことができます。
import java.io.FileOutputStream
import scala.Console
Console.setOut(new FileOutputStream("<output file path>"))
を今からすべてのprint
とprintln
には
それはあなたがそのようなことを利用したい正確にどのようにあなたの質問から不明だ。このファイルに向けられます。あなたがしようとしているものの例が役に立ちます。
オブジェクトをStringとしてファイルに書き込む単純な演算子を追加する暗黙の関数です。 (>
はすでにScalaで()「未満」を意味しているので、私はUNIXスタイル>
を意味する>>
を使用していることに注意してくださいあなたが好きなら。あなたは、いくつかの他のオペレータでこれを置き換えることができます。)
implicit def anyToFileOutput(self: Any) = new {
import java.io._
def >>(filename: String) {
val f = new BufferedWriter(new FileWriter(filename))
try {
f.write(self.toString)
} finally {
if (f != null)
f.close()
}
}
}
あなたはでしょうこのようにそれを使用します。List(1, 2, 3)
これは私がやろうとしていることです。例えば 'calculateSomething(a、b、c)'を呼び出すと 'Int'のリストを返します。理想的には' print'と 'println' 'calculateSomething'内の文をファイルに書き出し、返されたリスト結果をファイルに送ります。 – Gigatron
を含む作業ディレクトリ内のファイル、「out.txtを」を生成
scala> List(1,2,3) >> "out.txt"
は、私には正常に動作するようになります。
[email protected]:~/github/scala (master)$ scala -e "println(2 * 2)" > output
[email protected]:~/github/scala (master)$ cat output
4
ありがとうございますが、それはOSのコマンドラインにあり、実行中のREPLセッションではありません。 – Gigatron
@Gigatron印刷する代わりに文字列を生成するだけで、ファイルに簡単に送信できます。そして、あなたが望むソリューションを実装する方法を尋ねるのではなく、達成しようとしていることを示していれば、私たちはもっと役に立ちそうです。 –
- 1. Win32 :: Processコマンドの出力をテキストファイルにリダイレクトする方法は?
- 2. Scala REPL:関数型の検索方法は? ScalaのREPLで
- 3. echoコマンドの出力をPHPのテキストファイルにリダイレクトする方法
- 4. Scala REPL:リモートMavenリポジトリをScala REPLクラスパスに追加するには?
- 5. forループ出力をテキストファイルに出力する方法は?
- 6. ここの文書の出力をテキストファイルにリダイレクトする方法は?
- 7. scala replを初期化するときにカスタムオブジェクトをscala replに挿入する方法
- 8. Cファイル出力をテキストファイルにリダイレクト
- 9. 出力をリダイレクトする方法は?
- 10. Eclipse Plug-in開発でコンソールビューの出力をテキストファイルにリダイレクトする方法
- 11. Scala REPL in Emacs
- 12. REPL出力を無効にする
- 13. settings.maxPrintString for Scala 2.9 REPL
- 14. Python:Subprocessで出力をリダイレクトする方法
- 15. Scala REPL in Gradle
- 16. ScalaのREPL
- 17. Composerのテキストファイルへの出力のリダイレクト
- 18. SMLの文字列リストをテキストファイルに出力する方法は?
- 19. STDOUT出力をテキストファイルに保存する方法は?
- 20. すべての出力を/ dev/nullにリダイレクトする方法は?
- 21. Spark-Scalaの出力をテキストファイルに書き込む
- 22. 子プロセスの出力をstderrにリダイレクトする方法は?
- 23. 出力をBASHの別のディレクトリにリダイレクトする方法は?
- 24. NSOutputStreamを標準出力にリダイレクトする方法は?
- 25. pythonスクリプトのcmd出力をファイルにリダイレクトする方法は?
- 26. vmstatの出力をAndroid OSのファイルにリダイレクトする方法は?
- 27. Valgrindの出力をファイルにリダイレクトする方法は?
- 28. .exeの出力をpythonでファイルにリダイレクトする方法は?
- 29. npgsqlログ出力をlog4netロガーにリダイレクトする方法は?
- 30. python/ipython入出力をテキストファイルにリダイレクトできますか?
[SI-4793](https://issues.scala-lang.org/browse/SI-4793)のため、 'setOut'が2.9 REPLで動作していません。 [私の答え](http://stackoverflow.com/questions/7219316/println-vs-system-out-println-in-scala/7219519#7219519) – 4e6
を参照してください完璧ではありませんが、私はこれを受け入れる役に立つ答え。 REPLを終了するまでファイルに何もないことがあることがあります。これを回避するには、 'FileOutputStream'を' val'に格納し、 'close'を呼び出してファイルに内容をフラッシュします。 – Gigatron