2012-11-11 11 views

Odpowiedz

6

Oprócz File lub URL można również dostarczyć InputStream do ProcessBuilder.

Istnieje wiele sposobów przekonwertowania String na InputStream. W poniższym przykładzie używam ByteArrayInputStream i String.getBytes.

Jako przykład uruchomię dobry stary cat z zestawem wejściowym do zawartości 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