小编use*_*511的帖子

Kotlin附加到文件

我对Kotlin绝对陌生,似乎我无法获取追加文件过程。我有val路径给定的文件名:String =“ ..... txt”我想在我的类中使用以下方法:line:String并将其附加在文件的末尾(在新行上)。我的测试用例是:用两个不同的行对方法进行两次结果调用,例如“ foo”和“ bar”,我希望文件如下:

foo
bar
Run Code Online (Sandbox Code Playgroud)

如果我的方法如下所示,它将起作用:

fun writeLine(line: String) {
    val f = File(path!!)
    f.appendText(line + System.getProperty("line.separator"))
}
Run Code Online (Sandbox Code Playgroud)

而且它绝对不会以这种方式工作:

    fun writeLine(line: String) {
        val f = File(path!!)
        f.bufferedWriter().use { out->
        out.append(line)
        out.newLine()
        }
    }
Run Code Online (Sandbox Code Playgroud)

每次调用时都会重写我的文件,因此我的文件中只有“ bar”。它也不能与printWriter一起使用:

    fun writeLine(line: String) {
        val f = File(path!!)
        f.printWriter().use { out->
        out.append(line)
        }
    }
Run Code Online (Sandbox Code Playgroud)

我得到的结果与BufferedWriter相同。为什么?我就是听不懂。如何附加BufferedWriter或PrintWriter?

io append kotlin

5
推荐指数
1
解决办法
1211
查看次数

标签 统计

append ×1

io ×1

kotlin ×1