## 使用 Kotlin USE 简化文件读写

阅读: 评论:0

## 使用 Kotlin USE 简化文件读写

## 使用 Kotlin USE 简化文件读写

使用 Kotlin USE 简化文件读写

Use Kotlin USE to shorten file reading

常规写法

常规的文件读写如下;

private val pdfReader by lazy {val file = File(cacheDir, fileName)val outputStream = FileOutputStream(file)try {val inputStream = assets.open(fileName)var bytesCopied: Long = 0val buffer = ByteArray(8 * 1024)var bytes = ad(buffer)while (bytes >= 0) {outputStream.write(buffer, 0, bytes)bytesCopied += bytesbytes = ad(buffer)}} finally {outputStream.close()}PdfReader(file)
}

使用Use

Kotlin1.2开始,提供一个 use扩展方法,可以用在 Closeable类中
上面代码可以精简成:

private val pdfReader by lazy {val file = File(cacheDir, fileName)val outputStream = FileOutputStream(file)outputStream.use { outputStream ->val inputStream = assets.open(fileName)var bytesCopied: Long = 0val buffer = ByteArray(8 * 1024)var bytes = ad(buffer)while (bytes >= 0) {outputStream.write(buffer, 0, bytes)bytesCopied += bytesbytes = ad(buffer)}}PdfReader(file)
}

福利时间 Copy-to

上面的 流拷贝也会一个扩展。

private val pdfReader by lazy {val file = File(cacheDir, fileName)val outputStream = FileOutputStream(file)outputStream.use { fileOut ->assets.open(fileName).copyTo(fileOut)}PdfReader(file)
}

福利时间2 outputStream()扩展

File 类 也有一个扩展函数 outputStream()

private val pdfReader by lazy {val file = File(cacheDir, fileName)file.outputStream().use { fileOut ->assets.open(fileName).copyTo(fileOut)}PdfReader(file)
}

WOW ,改造完成,12行代码,精简成3行。

课外阅读:

InputStream 读取出 字符串 (Text,String)

val myString = inputStream.bufferedReader().use { bufferReader -> bufferReader?.readText() 
}

本文发布于:2024-01-31 14:13:56,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170668163629108.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:文件   Kotlin
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23