Trabajo con el sistema de archivos en Kotlin: guía completa

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción al trabajo con el sistema de archivos en Kotlin



Trabajar con el sistema de archivos es una de las tareas básicas al desarrollar aplicaciones en Kotlin. Ya sea una aplicación de consola, un proyecto de servidor o una aplicación móvil para Android, casi con toda seguridad necesitará leer, escribir, mover o eliminar archivos. Kotlin, al ser un lenguaje moderno que funciona sobre la JVM, proporciona todas las capacidades de la biblioteca estándar de Java, pero además añade sus propias extensiones convenientes y azúcar sintáctico.



En este artículo, analizaremos en detalle cómo trabajar eficientemente con el sistema de archivos en Kotlin. Aprenderá cómo crear y eliminar archivos y directorios, leer y escribir datos, recorrer directorios y manejar excepciones. Todos los ejemplos de código estarán escritos en Kotlin puro sin utilizar bibliotecas de terceros.



Clases principales y enfoques



En Kotlin, para trabajar con el sistema de archivos se utilizan dos API principales:



  • java.io.File — la API clásica de Java, que Kotlin extiende con sus funciones de extensión.
  • java.nio.file.Path y java.nio.file.Files — una API más moderna y funcional de Java NIO.


Ambos enfoques son totalmente compatibles con Kotlin, pero el segundo (NIO) se recomienda para proyectos nuevos, ya que proporciona capacidades más ricas y un mejor rendimiento.



Creación de archivos y directorios



Empecemos por lo más simple: la creación de un archivo. En Kotlin esto se hace de manera muy concisa:



import java.io.File

fun main() { val file = File("example.txt") // Creación de archivo (devuelve true si el archivo fue creado) val created = file.createNewFile() if (created) { println("Archivo creado: ${file.absolutePath}") } else { println("El archivo ya existe") } // Creación de directorio val dir = File("myDirectory") val dirCreated = dir.mkdir() // o mkdirs() para crear directorios anidados println("Directorio creado: $dirCreated")}


Observe el método mkdirs() — creará todos los directorios padre faltantes, a diferencia de mkdir(), que solo crea el último directorio en la ruta.



Lectura de archivos



Kotlin proporciona extensiones elegantes para leer el contenido de los archivos. Veamos varias formas:



import java.io.File

fun readExamples() { val file = File("data.txt") // Lectura de todo el archivo en una cadena val content: String = file.readText() println("Contenido del archivo:$content") // Lectura línea por línea en una lista val lines: List<String> = file.readLines() lines.forEach { println("Línea: $it") } // Lectura de todos los bytes val bytes: ByteArray = file.readBytes() println("Tamaño del archivo: ${bytes.size} bytes") // Lectura usando Buffered (para archivos grandes) file.forEachLine { line -> println("Procesando línea: $line") }}


Para archivos grandes, es mejor usar forEachLine o bufferedReader() para no cargar todo el archivo en memoria.



Escritura en archivos



La escritura de datos en un archivo también es intuitiva:



import java.io.File

fun writeExamples() { val file = File("output.txt") // Escritura de una cadena (sobrescribe el archivo) file.writeText("¡Hola, Kotlin!Segunda línea") // Añadir al final del archivo file.appendText("Tercera línea (añadida)") // Escritura de una lista de cadenas val lines = listOf("Línea 1", "Línea 2", "Línea 3") file.writeText(lines.joinToString("")) // Escritura de bytes val data = byteArrayOf(72, 101, 108, 108, 111) // "Hello" en ASCII file.writeBytes(data)}


Si necesita más control (por ejemplo, especificar la codificación), use

Blogs

Book Recommendations