У меня есть удобная функция, которую я использовал в Java для преобразования InputStream в String. Вот прямой перевод на 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
}
Есть ли идиоматический способ сделать это в scala?
string
scala
inputstream
баллант
источник
источник
Source.fromInputStream(is).mkString("")
тоже сделает дело .....источник
Iterator[Char]
.Source.fromInputStream(is)(Codec.UTF8).mkString
fromInputStream()
похоже, закрывает поток, по крайней мере, в Scala 2.11.Более быстрый способ сделать это:
источник
Reader
а не файлInputStream
.inputStreamReader
к методу.Runtime.exec()
. Это прибивает.