Kotlin - 如果透过File appendText 直接进行文字写档以及原理解析

在以前Java中要进行写档是一个建很麻烦的事情,要记得create file,得到BufferReader后还要透过close 并且记得try catch避免exception发生,而kotlin提供了一个appendText的extension,让你直接可以对file进行写入文字

File("path\fileName.txt") .appendText("Hello")

如果你要持续写入就可以变成

val file = File("path\fileName.txt")file.appendText("Hello")file.appendText(" World")file.appendText(" :)")

如此就可以完成写入文字了,也不需要额外的进行close 或者flush 那他实际是怎么运作的? 他其实是一个kotlin extension

从source code可以看到他是在kotlin 1.4增加的 extension,并且他其实有两个参数,第二个是encoding ,default value 是utf-8,如果你没有要额外指定编码,就不需要额外设定,

http://img2.58codes.com/2024/20125654eUfWZMJc2V.png

而他呼叫了另一个appendText,并且先将String toBytesArray传入

http://img2.58codes.com/2024/201256544yP2IpaYf8.png

实际是透过FileOutputStream后透过use这个T.extension,透过他就可以直接对bytes写入,并且在scope结束后会自动进行close ,也就是每一次的appendText,都会造成他马上进行写档,因此如果你是一个大量快速的log,会比较不建议使用appendText,因为这样会造成大量的IO,也可能会影响速度(大量的话会建议改成在一定buffer后才进行IO写入)

http://img2.58codes.com/2024/20125654faPPRBE3WK.png

以上就是File的appendText使用方法与原理,其实他还有writeTextreadTextwriteBytesreadLines等等其他方便使用的extension,对于要简易进行文字写入的话就可以参考并且理解看看他的原理啰。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章