这是我从 Java 移植过来的一些代码:
var audioDataString = ""
val jsonReader = BufferedReader(InputStreamReader(context.resources.openRawResource(resourceName)))
val jsonBuilder = StringBuilder()
var line: String? = null
while ((line = jsonReader.readLine()) != null) {
jsonBuilder.append(line).append("")
}
“(line = jsonReader.readLine())” 给我以下错误:Assingments are not expressions, and only expressions are allowed in this context。
如何在 Kotlin 中正确执行此操作?
谢谢。
最佳答案
有many different extensions在 Kotlin 标准库中,您可以在此处使用输入流、文件、阅读器等。对于此用例,Reader.forEachLine
将是最简单的使用:
jsonReader.forEachLine { line ->
jsonBuilder.append(line)
}
这使您可以逐行处理 Reader
,并在迭代结束时自动关闭 Reader
。
您可能还想看看 readLines
, lineSequence
, 和 useLines
这可以在更复杂的情况下为您提供帮助。
关于android - 如何在 Kotlin 中使用 while 循环遍历 BufferedReader 并附加到 StringBuilder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52244721/