Kotlin FileWriter не создает никаких файлов - PullRequest
0 голосов
/ 12 мая 2018

Здравствуйте, я пытался создать файл с FileWriter, следуя этому руководству

https://medium.com/@ssaurel/parse-and-write-json-data-in-java-with-gson-dd8d1285b28

но я всегда получаю

   not fn

как только я открываю logcat, это означает, что файл никогда не создается.

Я не понял вопроса.

Вот мой код

fun writeJson()
{
    val item1 = InterItem(1, DateT(2018, Calendar.FEBRUARY, 6).date, "Dina", "type1")
    val  item2 = InterItem(2, DateT(2018, Calendar.MARCH, 8).date, "Lili", "type2")
    val item3= InterItem(3, DateT(2018, Calendar.MAY, 10).date, "Wassim", "type3")
    val res =  ListInter()
    res.list= arrayListOf( item1, item2, item3)
    val gson = GsonBuilder().setPrettyPrinting().create()
    val strJson = gson.toJson(res)
    var writer: FileWriter? = null
    try {
        writer = FileWriter("data.json")
        writer.write(strJson)
    } catch (e: IOException) {
        e.printStackTrace()
        Log.e("errr","not fn")
    } finally {
        if (writer != null) {
            try {
                writer.close()
            } catch (e: IOException) {
                e.printStackTrace()
                Log.e("errr","not close")
            }

        }
    }
}

1 Ответ

0 голосов
/ 12 мая 2018

Изменение кода на это:

    try {
        val writer = FileWriter(File(this.filesDir, "data.json"))
        writer.use { it.write(strJson) }

    } catch (e : IOException){
        Log.e("errr","not fn", e)
    }

Должен решить проблему.Вы должны предоставить каталог, в который вы хотите поместить файл.Также вы можете использовать writer.use { it.write(strJson)}, поскольку FileWriter реализует Closeable - это обрабатывает закрытие модуля записи независимо от исключения.

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