J'ai une fonction pratique que j'ai utilisée en Java pour convertir un InputStream en String. Voici une traduction directe à 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
}
Existe-t-il un moyen idiomatique de faire cela dans scala?
string
scala
inputstream
bballant
la source
la source
Source.fromInputStream(is).mkString("")
fera également l'acte .....la source
Iterator[Char]
.Source.fromInputStream(is)(Codec.UTF8).mkString
fromInputStream()
semble fermer le flux, au moins dans Scala 2.11.Un moyen plus rapide de le faire:
la source
Reader
et pas unInputStream
.inputStreamReader
à la méthode.Runtime.exec()
. Cela cloue.