gpt4 book ai didi

string - 在 Scala 中将输入流转换为字符串的惯用方法

转载 作者:行者123 更新时间:2023-12-03 04:44:14 24 4
gpt4 key购买 nike

我有一个在 Java 中使用的方便函数,用于将 InputStream 转换为字符串。以下是 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 中是否有一种惯用的方法来做到这一点?

最佳答案

对于 Scala >= 2.11

scala.io.Source.fromInputStream(is).mkString

对于 Scala <2.11:

scala.io.Source.fromInputStream(is).getLines().mkString("\n")

做几乎同样的事情。不过,不知道为什么你想要得到线条然后将它们全部粘在一起。如果您可以假设流是非阻塞的,则只需使用 .available,将整个内容读入字节数组,然后直接从中创建一个字符串。

关于string - 在 Scala 中将输入流转换为字符串的惯用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5221524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com