Ich habe eine praktische Funktion, die ich in Java zum Konvertieren eines InputStream in einen String verwendet habe. Hier ist eine direkte Übersetzung zu Scala:
def inputStreamToString(is: InputStream) = {
val rd: BufferedReader = new BufferedReader(new InputStreamReader(is, "UTF-8"))
val builder = new StringBuilder()
try {
var line = rd.readLine
while (line != null) {
builder.append(line + "\n")
line = rd.readLine
}
} finally {
rd.close
}
builder.toString
}
Gibt es eine idiomatische Möglichkeit, dies in Scala zu tun?
string
scala
inputstream
bballant
quelle
quelle
Source.fromInputStream(is).mkString("")
wird auch die Tat tun .....quelle
Iterator[Char]
.Source.fromInputStream(is)(Codec.UTF8).mkString
fromInputStream()
scheint den Stream zu schließen, zumindest in Scala 2.11.Schneller geht das:
quelle
Reader
und kein habeInputStream
.inputStreamReader
zur Methode über.Runtime.exec()
. Das nagelt es.