Сохраните файл .csv с диапазоном дат - PullRequest
0 голосов
/ 22 марта 2019

У меня есть код, который будет печатать файл .csv в соответствии с выбранным пользователем диапазоном дат, но он пропускает последние данные и не печатает файл .csv.

Ниже приведен фрагмент кода для печати файла .csv с диапазоном дат.

private fun saveCSV(){
    var fileWriter: FileWriter? = null
    try {
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
            fileWriter = FileWriter(File(Utility.getStorageDirectory, "hydrowatchData.csv"))
            fileWriter.write("Station Name:, $stationName\n Station Address:, $stationAddress\n Station GPS:, $stationLat $stationLong\n\n")
            fileWriter.write(CSV_HEADER+"\n")

            for (data in dataList) {

                if ("${data.date}" <= "${date_upto.text}"+"${time_upto.text}"+":00" && "${data.date}" >= "${date_from.text}"+"${time_from.text}"+":00") {
                    fileWriter.write("${data.date}" + ", " + "${data.water}" + ", " + "${data.rain}" + "\n")

                    if (data.water.toInt() < minWater){
                        minWater = data.water.toInt()
                    }
                    if (data.water.toInt() > maxWater){
                        maxWater = data.water.toInt()
                    }
                    if (data.rain.toInt() < minRain){
                        minRain = data.rain.toInt()
                    }
                    if (data.rain.toInt() > maxRain){
                        maxRain = data.rain.toInt()
                    }
                }
            }
            fileWriter.write("\n\nWater_lvl\n")
            fileWriter.write("Minimum value, $minWater\n")
            fileWriter.write("Maximum value, $maxWater")

            fileWriter.write("\n\nRain_lvl\n")
            fileWriter.write("Minimum value, $minRain\n")
            fileWriter.write("Maximum value, $maxRain")
            Toast.makeText(this,"Write CSV successfully!", Toast.LENGTH_LONG).show()
            val csvFile = File(Utility.getStorageDirectory, "hydrowatchData.csv")
            showFileActions(csvFile.absolutePath, Utility.getStorageDirectory)
        } else {
            requestWriteStoragePermission()
        }
    } catch (e: Exception) {
        Toast.makeText(this,"Writing CSV error!", Toast.LENGTH_LONG).show()
        e.printStackTrace()
    }
    finally {
        try {
            fileWriter!!.close()
        } catch (e: IOException) {
            Toast.makeText(this, "Flushing/closing error!", Toast.LENGTH_LONG).show()
            e.printStackTrace()
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...