前段时间学习了一点内容,写了一篇Groovy开发工具包。我当时就在想Kotlin怎么没有好用的文件操作API呢?后来我发现我太傻了,Kotlin这么好用的语言怎么可能没有自己的文件API呢?
Kotlin的IO操作都在kotlin.io包下。Kotlin的原则就是Java有的就直接利用,没有的才自己想办法写。因此Kotlin的IO操作主要是依靠扩展方法,在原有的Java类上添加功能实现的。这一点倒是和Groovy有点像。
下面介绍的很多方法都有一个Charset
参数,可以直接要使用的字符集,默认是UTF-8。如果需要其他的字符集,用这个参数指定就行了。
终端IO
如果学过C++的同学可能会对Java超长的输出语句System.out.println()
所震惊。同样的工作在C++里面只需要简单的cout<<
就可以完成。
幸好,在Kotlin里面很简单,只需要使用println
或者print
这两个全局函数即可。我们不再需要冗长的前缀。
从终端读取数据也很简单,最基本的方法就是全局函数readLine
,它直接从终端读取一行作为字符串。如果需要更进一步的处理,可以使用Kotlin提供的各种字符串处理函数来处理和转换字符串。
文件IO
Kotlin为java.io.File
提供了大量好用的扩展方法,详细的扩展方法见这里java.io.File。这里我就跳着说几个最常用最好用的吧。
首先先看读取文件。如果需要简单读取一个文件,可以使用readText()
方法,它直接返回了整个文件内容。如果希望按行读取,还可以使用readLines()
方法,这会返回一个行字符串数组,我们可以随意操作。如果希望直接操作字节数组,那就使用readBytes()
。如果想使用传统的Java方式,Kotlin也能满足你。