跳到主要内容

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))
}
}