Kotlin和Java中的IO操作 痛定思痛。 2022-05-28 13:52 184阅读 0赞 Kotlin的特性 1.Kotlin提供了非常多,File、Stream、Reader、Writer的拓展方法 2.使用use拓展自动关闭资源 3.小文件一次性读写操作 一、首先来看看繁琐的JavaIO操作,来读取一个文件 package cn.kotliner.java.io; import java.io.*; /** * Created by wangdong * Java中的IO操作 */ public class IO { public static void main(String... args) { BufferedReader bufferedReader = null; try { bufferedReader = new BufferedReader(new FileReader(new File("build.gradle"))); String line; while((line = bufferedReader.readLine()) != null){ System.out.println(line); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { bufferedReader.close(); } catch (IOException e) { e.printStackTrace(); } } } } 二、如果用Kotlin直接译一中的JavaIO代码 package cn.kotliner.kotlin.io import java.io.* /** * Created by wangdong * Kotlin直译Java中的IO操作 */ fun main(args: Array<String>) { val file = File("build.gradle") val bufferedReader = BufferedReader(FileReader(file)) var line: String while(true){ line = bufferedReader.readLine()?:break println(line) } bufferedReader.close() } 三、使用Kotlin中use方法去改写 package cn.kotliner.kotlin.io import java.io.* /** * Created by wangdong * 使用kotlin中的use的方法改写 */ fun main(args: Array<String>) { val file = File("build.gradle") BufferedReader(FileReader(file)).use { var line: String while(true){ line = it.readLine()?:break println(line) } } } /** * 第十行use点进去,就可以看到use是怎么实现的 */ /** @InlineOnly public inline fun <T : Closeable?, R> T.use(block: (T) -> R): R { var closed = false try { return block(this) } catch (e: Exception) { closed = true try { this?.close() } catch (closeException: Exception) { } throw e } finally { if (!closed) { this?.close() } } }*/ 四、使用kotlin中的readlin()方法改写一下 package cn.kotliner.kotlin.io import java.io.* /** * Created by wangdong * 使用readlines()方法改写 */ fun main(args: Array<String>) { File("build.gradle").readLines().forEach(::println) } /** * Reads the file content as a list of lines. * * Do not use this function for huge files. * * @param charset character set to use. By default uses UTF-8 charset. * @return list of file lines. public fun File.readLines(charset: Charset = Charsets.UTF_8): List<String> { val result = ArrayList<String>() forEachLine(charset) { result.add(it); } return result }*/
相关 理解和解决Java中IO操作常见的问题 在Java中进行I/O(Input/Output)操作,可能会遇到以下一些常见问题及其解决方案: 1. **文件未正确打开**:例如使用`FileInputStream`时, 绝地灬酷狼/ 2024年09月17日 11:30/ 0 赞/ 21 阅读
相关 理解和解决Java中IO操作的问题 在Java中,IO(Input/Output)操作是指读写文件、网络通信等与操作系统交互的活动。以下是理解和解决Java中IO操作问题的一些步骤: 1. **理解基础IO类* 冷不防/ 2024年09月10日 06:09/ 0 赞/ 24 阅读
相关 Java中IO操作的阻塞和非阻塞示例 在Java中,I/O(Input/Output)操作可以通过不同的方式实现阻塞和非阻塞。 1. 阻塞I/O: - `BufferedReader`:当读取的数据未到达时 「爱情、让人受尽委屈。」/ 2024年09月05日 19:09/ 0 赞/ 18 阅读
相关 Java中文件操作——IO 文章目录 文件操作 1. 硬盘(外存)与内存 2. 认识文件 2.1 文件管理 2.2 文件类型 3. 布满荆棘的人生/ 2024年03月24日 11:40/ 0 赞/ 21 阅读
相关 Kotlin IO操作 前段时间学习了一点内容,写了一篇[Groovy开发工具包][Groovy]。我当时就在想Kotlin怎么没有好用的文件操作API呢?后来我发现我太傻了,Kotlin这么好用的语 太过爱你忘了你带给我的痛/ 2022年09月30日 10:57/ 0 赞/ 137 阅读
相关 java中io操作的注意事项 1. 及时关闭流 我们在io操作完成后,需要及时关闭流释放资源,因为这样的对象不主动关闭,将会占用系统资源,会增大系统的开销。 2. 忘是亡心i/ 2022年07月28日 01:28/ 0 赞/ 147 阅读
相关 Kotlin和Java中的IO操作 Kotlin的特性 1.Kotlin提供了非常多,File、Stream、Reader、Writer的拓展方法 2.使用use拓展自动关闭资源 3.小文件一次性读写 痛定思痛。/ 2022年05月28日 13:52/ 0 赞/ 185 阅读
还没有评论,来说两句吧...