Kotlin 文件系统操作完全指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程
```html

Kotlin 文件系统操作入门



文件系统操作是软件开发中的基础任务之一。Kotlin 作为一门现代语言,为文件和目录管理提供了强大而简洁的工具。由于与 Java 完全兼容,您既可以使用经典的 Java 库(java.io.File、java.nio.file),也可以使用 Kotlin 扩展,这些扩展能让代码更具可读性和安全性。



在本文中,我们将介绍 Kotlin 中文件系统的基本操作:创建、读取、写入、复制和删除文件及文件夹。您将学习如何使用标准 Java 类以及 Kotlin 风格来编写高效的代码。



Kotlin 文件操作的主要类与扩展



Kotlin 没有自己独立的文件系统操作库,但它为 java.io.File 类提供了许多实用的扩展函数。这些函数使代码更加简洁和富有表现力。以下是最重要的几个:



  • readText() — 将整个文件读取为字符串。
  • readLines() — 逐行读取文件并返回字符串列表。
  • writeText() — 将字符串写入文件(覆盖写入)。
  • appendText() — 将字符串追加到文件末尾。
  • bufferedReader() — 返回 BufferedReader 以实现高效读取。
  • bufferedWriter() — 返回 BufferedWriter 以实现高效写入。
  • inputStream() 和 outputStream() — 用于处理二进制数据。
  • copyTo() — 将文件复制到其他位置。
  • deleteRecursively() — 递归删除文件或目录。


使用示例:

import java.io.File

fun main() { val file = File("example.txt")

// 将文本写入文件 file.writeText("你好,Kotlin!")

// 从文件读取文本 val content = file.readText() println(content) // 输出:你好,Kotlin!

// 追加文本 file.appendText("新的一行") println(file.readText())}


使用 Java NIO(Path 和 Files)

对于更复杂的操作,例如移动、带选项的复制或处理符号链接,建议使用 Java NIO(java.nio.file.Path 和 java.nio.file.Files)。Kotlin 同样支持这些类,没有任何限制。



import java.nio.file.Filesimport java.nio.file.Pathimport java.nio.file.Paths

fun main() { val path: Path = Paths.get("nio_example.txt") val content = "给 NIO 的文本"

// 使用 Files.write 写入 Files.write(path, content.toByteArray())

// 使用 Files.readAllLines 读取 val lines = Files.readAllLines(path) lines.forEach { println(it) }}


文件读写:最佳实践



在处理文件时,考虑数据大小和潜在错误(例如文件不存在或权限问题)非常重要。Kotlin 通过 use 和 runCatching 提供了便捷的异常处理方式。



读取大文件

对于读取大文件(超过几兆字节),不建议使用 readText(),因为它会将整个文件加载到内存中。请改用流式处理:



import java.io.File

fun readLargeFile(filePath: String) { val file = File(filePath) file.bufferedReader().use { reader -> var line: String? while (reader.readLine().also { line = it } != null) { // 处理每一行 println(line) } }}


构造

博客

书籍推荐