如何仅在Kotlin中读取文本文件中的指定行?

时间:2020-11-11 14:47:49

标签: android kotlin

我目前正在制作一个需要读取文本文件中引号的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()

任何帮助将不胜感激,并感谢您提前提供任何帮助!

1 个答案:

答案 0 :(得分:3)

您可以使用useLines,它使您可以在lambda中处理一系列行,然后自动关闭流:

val fifthLine = resources.openRawResource(R.raw.quotes)
    .bufferedReader().useLines { it.elementAtOrNull(4) ?: "" }