可能でしょうか?そうであればどうしますか? 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. Scala REPL:関数型の検索方法は? ScalaのREPLで
- 2. Scala REPL:リモートMavenリポジトリをScala REPLクラスパスに追加するには?
- 3. 出力をリダイレクトする方法は?
- 4. Eclipse Plug-in開発でコンソールビューの出力をテキストファイルにリダイレクトする方法
- 5. Scala REPL in Emacs
- 6. Python:Subprocessで出力をリダイレクトする方法
- 7. settings.maxPrintString for Scala 2.9 REPL
- 8. STDOUT出力をテキストファイルに保存する方法は?
- 9. Scala REPL in Gradle
- 10. すべての出力を/ dev/nullにリダイレクトする方法は?
- 11. 出力をBASHの別のディレクトリにリダイレクトする方法は?
- 12. NSOutputStreamを標準出力にリダイレクトする方法は?
- 13. Valgrindの出力をファイルにリダイレクトする方法は?
- 14. .exeの出力をpythonでファイルにリダイレクトする方法は?
- 15. npgsqlログ出力をlog4netロガーにリダイレクトする方法は?
- 16. vmstatの出力をAndroid OSのファイルにリダイレクトする方法は?
- 17. マップ結果をSpark scalaのテキストファイルに保存する方法は?
- 18. 音声認識出力をテキストファイルに保存する方法
- 19. ionideを呼び出す方法#REPL
- 20. django manage.pyの出力を(ウィンドウで)テキストファイルにリダイレクト
- 21. 標準入力と出力をBashでリダイレクトする方法
- 22. Scala REPL:特定のコマンドに関するドキュメントはどこにありますか? ScalaのREPLで
- 23. Laravel Artisanコマンドの出力を保存/リダイレクトする方法は?
- 24. 標準出力と標準エラー出力をUnixリダイレクトを使ってローリングファイルにリダイレクトする方法
- 25. Robot Framework:コンソール出力をファイルにリダイレクトする方法
- 26. cronジョブ出力をstdoutにリダイレクトする方法
- 27. トップコマンドの出力をファイル内にリダイレクトする方法
- 28. Pythonスクリプトの出力をターミナルにリダイレクトする方法
- 29. アプリケーションの出力をバックグラウンドで/ dev/nullにリダイレクトする方法
- 30. Javaロギング - 出力をロガーのカスタムログファイルにリダイレクトする方法
[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