Kotlin_读写文件

读写文件操作记录, 提取成函数,方便看其返回值,以加深理解。

        private fun createNewFile(): File {
            var file = File("output.txt")

            if (file.exists()) {
                file.delete()
            }
            file.createNewFile()
            return file
        }

        private fun readLineFromFile(filePath: String): List<String> {
            val file = File(filePath)
            return file.readLines()
        }

        private fun readTextFromFile(filePath: String): String {
            val file = File(filePath)
            return file.readText()
        }

        private fun writeTextToFile(file: File, text : String, isNeedChangeLine : Boolean) {
            var strContent =  text
            if (isNeedChangeLine) {
                strContent += "\r\n"
            }
            var randomAccessFile = RandomAccessFile(file, "rwd")
            randomAccessFile.seek(file.length())
            randomAccessFile.write(strContent.toByteArray())
            randomAccessFile.close()
        }
    }

其中 readLines() 是按行读取,readText 是直接读取文本所有内容

写入文件借助RandomAccessFile 类,并处理换行输入 (File.writeText 是会直接覆盖文本之前的内容的)

`kotlin.use` 并不是 Kotlin 用于读写文件的操作符或者特定函数。可能是你在提问时打错了字,想要查询的是 Kotlin 中如何读写文件Kotlin 提供了几种便捷的方式来处理文件操作: ### 读取文件内容 #### 使用 `readText()` 或者 `readLines()` 对于文本文件,你可以使用 `FileInputStream` 的 `reader()` 方法配合 `BufferedReader` 来逐行读取文件,但是 Kotlin 提供了更简洁的方式: ```kotlin val content = File("path/to/file.txt").readText() ``` 这个表达式会直接将文件的内容作为字符串读入。如果你需要每行数据作为一个单独的元素存储到列表中,可以使用: ```kotlin val lines = File("path/to/file.txt").readLines() ``` 这里返回的 `lines` 列表包含了文件中的每一行。 ### 写入文件内容 创建新文件并写入内容,可以通过 `FileWriter` 类完成: ```kotlin val writer = FileWriter("newfile.txt") writer.write("Hello, World!") writer.close() ``` 如果你想一次性写入多行,可以这样做: ```kotlin val writer = FileWriter("newfile.txt") for (line in listOf("First line", "Second line")) { writer.append(line) } writer.close() ``` 这里使用了 `append()` 方法追加新的行而不换行。 ### 自动管理资源 为了更好地处理文件流的关闭工作,并避免内存泄漏,通常会使用 `use` 函数: ```kotlin val fileContent = File("path/to/file.txt").use { it.readText() } ``` 或者对于写操作: ```kotlin val writer = File("path/to/newfile.txt").use { it.newWriter() } { writer -> writer.write("This is a test.") } ``` 这里的 `use` 函数会自动关闭文件流,确保资源得到合理利用。 ### 相关问题: 1. Kotlin 中还有哪些其他方式读写文件? 2. 在进行文件操作时需要注意哪些常见的错误和异常? 3. 怎么样优化读写文件的性能?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值