scala.sys.process的文檔提供了有關如何將URL或文件重定向到進程(stdin)的示例。但是如何重定向一個字符串呢?將字符串重定向到scala.sys.process
我使用Scala 2.9。
scala.sys.process的文檔提供了有關如何將URL或文件重定向到進程(stdin)的示例。但是如何重定向一個字符串呢?將字符串重定向到scala.sys.process
我使用Scala 2.9。
除了File
或URL
您還可以提供InputStream
到ProcessBuilder
。
有多種方法可以將String
轉換爲InputStream
。在下面我使用ByteArrayInputStream
和String.getBytes
。
作爲一個例子,我將運行好老cat
與輸入設置爲inputString
的內容。
scala> import java.io.ByteArrayInputStream
import java.io.ByteArrayInputStream
scala> import scala.sys.process._
import scala.sys.process._
scala> val cmd = List("cat")
cmd: List[java.lang.String] = List(cat)
scala> val inputString = "hello\nworld"
inputString: java.lang.String =
hello
world
scala> val is = new ByteArrayInputStream(inputString.getBytes("UTF-8"))
is: java.io.ByteArrayInputStream = [email protected]
scala> val out = (cmd #< is).lines_!
out: Stream[String] = Stream(hello, ?)
scala> out.foreach(println)
hello
world
要獲得的ProcessBuilder,請參閱scaladoc
http://www.scala-lang.org/api/current/scala/sys/process/ProcessBuilder.html
scala.sys.process.Process#應用具有多種參數,包括一個字符串。
我希望能幫到你。