Kotlin 文件操作
Kotlin 通过 Java 的 I/O 类和扩展函数简化文件操作。
读取文件
读取整个文件
import java.io.File
fun main() {
val file = File("test.txt")
val content = file.readText()
println(content)
}
按行读取
import java.io.File
fun main() {
val file = File("test.txt")
// 读取所有行
val lines = file.readLines()
lines.forEach { println(it) }
// 使用 forEachLine
File("test.txt").forEachLine {
println(it)
}
}
读取字节
fun main() {
val bytes = File("test.txt").readBytes()
println("Size: ${bytes.size}")
}
写入文件
写入文本
import java.io.File
fun main() {
val file = File("output.txt")
// 写入文本(覆盖)
file.writeText("Hello, Kotlin!")
// 追加文本
file.appendText("\nNew line")
// 写入多行
file.writeLines(listOf("Line 1", "Line 2", "Line 3"))
}
使用 BufferedWriter
fun main() {
File("output.txt").bufferedWriter().use { writer ->
writer.write("Line 1")
writer.newLine()
writer.write("Line 2")
}
}
文件信息
import java.io.File
fun main() {
val file = File("test.txt")
// 检查属性
println("Exists: ${file.exists()}")
println("Is file: ${file.isFile}")
println("Is directory: ${file.isDirectory}")
println("Name: ${file.name}")
println("Path: ${file.path}")
println("Size: ${file.length()} bytes")
println("Last modified: ${file.lastModified()}")
}
目录操作
import java.io.File
fun main() {
val dir = File("myfolder")
// 创建目录
dir.mkdir()
dir.mkdirs() // 创建多层目录
// 列出文件
dir.listFiles()?.forEach { println(it.name) }
// 递归列出
dir.walkTopDown().forEach { println(it.path) }
// 过滤
val kotlinFiles = dir.walkTopDown()
.filter { it.extension == "kt" }
// 删除
dir.deleteRecursively()
}
使用 Path
import java.nio.file.*
fun main() {
val path = Paths.get("test.txt")
// 读取
val content = Files.readString(path)
// 写入
Files.writeString(path, "Hello")
// 检查存在
if (Files.exists(path)) {
println(Files.size(path))
}
}