Kotlin之IO操作实践

简介

        在kotlin中对IO的操作有别于java,完全用java的IO方式写kotlin代码是不可取得,下面是项目中实践出来的。

InputStream

使用InputStream方式如下:

val inputStream:InputStream = File("kotlin.txt").inputStream()

val inputString=inputStream.bufferedReader().use{ it.readText() }

步骤:
        首先通过File对象获取InputStream实例,通过inputStream获取bufferedReader,最后通过bufferedReader.use高级函数读取文件内容,并返回String

如果需要逐行读取,则需要以下方式:

val inputStream:InputStream=File("kotlin.txt").inputStream()

val lineList=mutableListOf()

inputStream.bufferedReader().useLines{ lines -> lines.forEach{ lineList.add }}

步骤:
          逐行读取只需要调用bufferedReader.useLines函数即可,lines就是每一行数据的集合

BufferedReader

使用BufferedReader的方式如下:

val bufferedReader:BufferedReader=File("kotlin.txt").bufferedReader()

val inputString=bufferedReader.use{it.readText()}

描述:
          相信你看到了,File对象可以直接获取bufferedReader,先获取inputStream显得多余,如果你目标是bufferedReader建议这么写

但这些还不是终点,因为File还可以直接useLines,请看

File("kotlin.txt").useLines{ lines -> lines.forEach{ lineList.add(it) } }

就是这么简单好用,赞 ,说完读,下面说写

PrintWriter

使用PrintWriter方式:

File("kotlin.txt").printWriter().use{ out-> out.println( "writer something" ) }

步骤:
          通过File对象获取printWriter,然后直接调用use高级函数,最后println函数写入字符串

BufferedWriter

使用BufferedWriter方式:

File("kotlin.txt").bufferedWriter().use{ out-> out.write( "writer something" ) }

步骤:
          不用多说了,你已经会用了吧。

但是,这又不是终点,还有更简便的写法,这都依赖于kotlin的高级语法糖:扩展函数,下面请看:

val file = File("kotlin.txt")

file.writeText("something")

file.appendText("\nAny.")

file.appendText("\nOther.")

请注意: 你肯定会问,为啥不一步到位,封装那些多余的printWriter,和bufferedWriter干嘛,下面告诉你:

1. printWriter 在接收参数为null的情况下,会直接写入null

2. bufferedWriter 在接收参数为null的情况 会抛出空指针

3. file.writeText 函数只接收String 非Null 参数,如果你传入null 代码都编译不了

总结

        相信你会用了,会用还不是目地,还是要看看源码,根本就是扩展函数的应用。希望这些对你有用,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值