存储文件操作
在 Kotlin 中操作文件的增删改查(CRUD)需要根据运行环境区分:**纯 JVM 环境**(如后端、桌面应用)直接使用 `java.io.File` 或 `java.nio.file`;**Android 环境**则需考虑分区存储、权限、MediaStore 等特性。本文将分两部分详细讲解,并提供完整的代码示例。一、Kotlin/JVM 通用文件操作(标准库)Kotlin 标准库对 `java.io.File` 进行了扩展,提供了简洁的 API。1. 增(创建/写入文件)```kotlinimport java.io.File// 写入字符串(覆盖)val file = File("example.txt")file.writeText("Hello, Kotlin!")// 追加内容file.appendText("\nAnother line")// 写入字节数组file.writeBytes(byteArrayOf(65, 66, 67))// 使用 writer 写入多行file.bufferedWriter().use { writer - writer.write("Line 1") writer.newLine() writer.write("Line 2")}```2. 删(删除文件或目录)```kotlin// 删除文件val deleted = file.delete() // 返回 Boolean// 安全删除(如果文件存在)file.deleteIfExists() // Kotlin 1.9+ 扩展函数// 删除目录(需递归)fun deleteDirectory(dir: File) { dir.listFiles()?.forEach { child - if (child.isDirectory) deleteDirectory(child) else child.delete() } dir.delete()}```3. 改(修改文件内容、属性)- **内容修改**:读取 - 修改 - 写回,或使用随机访问。```kotlin// 在文件开头插入内容(读取全部,修改后写回)val content = file.readText()file.writeText("Prefix\n" + content)// 随机访问(修改特定位置)RandomAccessFile(file, "rw").use { raf - raf.seek(10) // 移动到第10个字节 raf.writeByte(42)}// 重命名/移动file.renameTo(File("newname.txt"))file.copyTo(File("copy.txt"), overwrite = true)```4. 查(读取文件、查询属性、遍历目录)```kotlin// 读取全部内容val text = file.readText()val lines = file.readLines()// 读取为字节数组val bytes = file.readBytes()// 属性查询println("Name: ${file.name}")println("Size: ${file.length()} bytes")println("Last modified: ${file.lastModified()}")// 遍历目录File("/path/dir").walk().forEach { child - println(child.absolutePath)}// 过滤特定扩展名val txtFiles = File(".").listFiles {
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2512131.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!