Как я могу прочитать только указанную строку в текстовом файле в Kotlin?

#android #kotlin

#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:

Вы можете использовать useLines , который позволяет вам работать с последовательностью строк из лямбда-выражения и автоматически закрывать поток после этого:

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