我对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?