我目前正在制作一个需要读取文本文件中引号的android应用。我有代码从文件中读取所有内容并通过烤面包显示它,但是我不知道如何从其中读取特定行(例如,仅在烤面包中显示第5行)。
这是我的代码:
var string: String? = ""
val stringBuilder = StringBuilder()
val `is`: InputStream = this.resources.openRawResource(R.raw.quotes)
val reader = BufferedReader(InputStreamReader(`is`))
while (true) {
try {
if (reader.readLine().also { string = it } == null) break
} catch (e: IOException) {
e.printStackTrace()
}
stringBuilder.append(string).append("\n")
Log.d("strings", stringBuilder.toString())
}
`is`.close()
Toast.makeText(baseContext, stringBuilder.toString(),
Toast.LENGTH_LONG).show()
任何帮助将不胜感激,并感谢您提前提供任何帮助!
答案 0 :(得分:3)
您可以使用useLines
,它使您可以在lambda中处理一系列行,然后自动关闭流:
val fifthLine = resources.openRawResource(R.raw.quotes)
.bufferedReader().useLines { it.elementAtOrNull(4) ?: "" }