I am using open CSV pareser. In my csv file there can be about 100,000 rows. It takes to much time to read them, how can I skip and read every N row (each 30th row for example)
private suspend fun readCSVRides(folder: String): MutableList<RideDataCsv>? = withContext(Dispatchers.IO) {
val path = getExternalFilesDir(null)!!.path + "/" + folder + "/" + "measurements.csv"
var segments: MutableList<RideDataCsv>? = null
var fileReader: BufferedReader? = null
val csvToBean: CsvToBean<RideDataCsv>?
try {
fileReader = BufferedReader(FileReader(path))
csvToBean = CsvToBeanBuilder<RideDataCsv>(fileReader)
.withType(RideDataCsv::class.java)
.withIgnoreLeadingWhiteSpace(true)
.withIgnoreEmptyLine(true)
.build()
segments = csvToBean.parse()
} catch (e: Exception) {
println("Reading CSV Error!")
e.printStackTrace()
} finally {
try {
fileReader!!.close()
} catch (e: IOException) {
println("Closing fileReader/csvParser Error!")
e.printStackTrace()
}
}
segments
}
from Skip every n row in CSV parser
No comments:
Post a Comment