Чтение файла CSV минус две последние строки - PullRequest
0 голосов
/ 07 апреля 2020

Я читаю файл CSV, в котором я хочу, чтобы вы прочитали мне все строки, кроме двух последних. Я пытался добавить счетчик для подсчета количества строк, но ничего, что я делаю, не работает для меня, поэтому посмотрим, сможете ли вы мне помочь:

class CSVFile(private var inputStream: InputStream) {

fun read(): MutableList<List<String>> {
    val resultList: MutableList<List<String>> = mutableListOf()
    val reader = BufferedReader(InputStreamReader(inputStream))
    try {
        var csvLine: String?
        var counter = 0
        while (reader.readLine().also { csvLine = it } != null) {
            counter++
            for (i in 0 until counter-2) {
                val row = csvLine?.split(",")
                row?.let { resultList.add(it) }
            }
        }
    } catch (ex: IOException) {
        throw RuntimeException("Error in reading CSV file: $ex")
    } finally {
        try {
            inputStream.close()
        } catch (e: IOException) {
            throw RuntimeException("Error while closing input stream: $e")
        }
    }
    return resultList
  }

}

Я делаю беспорядок, потому что я знаю У меня более или менее есть идея, но я не могу организовать ее так, чтобы я прекратил считать до того, как доберусь до последних двух.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...