Android Kotlin FileWriter不创建任何文件

Android Kotlin FileWriter不创建任何文件,android,file,kotlin,filewriter,Android,File,Kotlin,Filewriter,您好,在本教程之后,我尝试使用FileWriter创建文件 但我总是会 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,

您好,在本教程之后,我尝试使用FileWriter创建文件

但我总是会

   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")
            }

        }
    }
}

将代码更改为:

    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.writestrJson},因为FileWriter实现了Closeable-这将处理关闭writer而不考虑异常情况。

将代码更改为:

    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.writestrJson},因为FileWriter实现了Closeable-这将处理关闭writer而不考虑异常情况。

您可能需要类似于FileWriterFilecontext.FileDir、data.json的内容-您应该提供文件放置的目录。此外,您还可以使用writer.use{it.writestrJson}作为FileWriter实现Closeable-这将处理关闭writer而不考虑异常。您的意思是提供目录名称吗?我如何感谢您?我将this writer=FileWriterFilethis.filesDir,data.json放在这里,它就可以工作了。请回答这个问题,也许其他人也会从中受益。上帝保佑你,如果我真的说谎,你说我会把所有的事情都告诉你的。请更新解决方案好吗?再次感谢您可能需要类似FileWriterFilecontext.FileDir、data.json这样的文件-您应该提供文件放置的目录。此外,您还可以使用writer.use{it.writestrJson}作为FileWriter实现Closeable-这将处理关闭writer而不考虑异常。您的意思是提供目录名称吗?我如何感谢您?我将this writer=FileWriterFilethis.filesDir,data.json放在这里,它就可以工作了。请上帝保佑我的问题,如果我也能回答的话。请更新解决方案。再次感谢您。现在没有理由在try块之外将writer声明为null和可变。现在没有理由在try块之外将writer声明为null和可变。