Trabalhando com o sistema de arquivos em Kotlin: guia completo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course
Here is the translated HTML content in Portuguese, keeping all HTML tags and only translating the text content inside them. ```html

Introdução ao trabalho com o sistema de arquivos em Kotlin



Trabalhar com o sistema de arquivos é uma das tarefas básicas no desenvolvimento de aplicações em Kotlin. Seja uma aplicação de console, um projeto de servidor ou uma aplicação móvel para Android, você quase certamente precisará ler, escrever, mover ou excluir arquivos. Kotlin, sendo uma linguagem moderna que roda sobre a JVM, oferece todos os recursos da biblioteca padrão do Java, mas também adiciona suas próprias extensões convenientes e açúcar sintático.



Neste artigo, vamos detalhar como trabalhar eficientemente com o sistema de arquivos em Kotlin. Você aprenderá como criar e excluir arquivos e diretórios, ler e escrever dados, percorrer diretórios e tratar exceções. Todos os exemplos de código serão escritos em Kotlin puro, sem o uso de bibliotecas de terceiros.



Classes principais e abordagens



Em Kotlin, para trabalhar com o sistema de arquivos, são usadas duas APIs principais:



  • java.io.File — API clássica do Java, que Kotlin estende com suas funções de extensão.
  • java.nio.file.Path e java.nio.file.Files — API mais moderna e funcional do Java NIO.


Ambas as abordagens são totalmente compatíveis com Kotlin, mas a segunda (NIO) é recomendada para novos projetos, pois oferece recursos mais ricos e melhor desempenho.



Criação de arquivos e diretórios



Vamos começar com o mais simples — a criação de um arquivo. Em Kotlin, isso é feito de forma muito concisa:



import java.io.File

fun main() { val file = File("example.txt") // Criação do arquivo (retorna true se o arquivo foi criado) val created = file.createNewFile() if (created) { println("Arquivo criado: ${file.absolutePath}") } else { println("O arquivo já existe") } // Criação de diretório val dir = File("myDirectory") val dirCreated = dir.mkdir() // ou mkdirs() para criar diretórios aninhados println("Diretório criado: $dirCreated")}


Observe o método mkdirs() — ele criará todos os diretórios pai ausentes, ao contrário de mkdir(), que cria apenas o último diretório no caminho.



Leitura de arquivos



Kotlin oferece extensões elegantes para ler o conteúdo de arquivos. Vejamos algumas maneiras:



import java.io.File

fun readExamples() { val file = File("data.txt") // Leitura de todo o arquivo em uma string val content: String = file.readText() println("Conteúdo do arquivo:$content") // Leitura linha por linha em uma lista val lines: List<String> = file.readLines() lines.forEach { println("Linha: $it") } // Leitura de todos os bytes val bytes: ByteArray = file.readBytes() println("Tamanho do arquivo: ${bytes.size} bytes") // Leitura usando Buffered (para arquivos grandes) file.forEachLine { line -> println("Processando linha: $line") }}


Para arquivos grandes, é melhor usar forEachLine ou bufferedReader() para não carregar todo o arquivo na memória.



Escrita em arquivos



A escrita de dados em um arquivo também é intuitiva:



import java.io.File

fun writeExamples() { val file = File("output.txt") // Escrita de uma string (sobrescreve o arquivo) file.writeText("Olá, Kotlin!Segunda linha") // Adição ao final do arquivo file.appendText("Terceira linha (adicionada)") // Escrita de uma lista de strings val lines = listOf("Linha 1", "Linha 2", "Linha 3") file.writeText(lines.joinToString("")) // Escrita de bytes val data = byteArrayOf(72, 101, 108, 108, 111) // "Hello" em ASCII file.writeBytes(data)}


Se você precisar de mais controle (por exemplo, especificar a codificação), use

Blogs

Book Recommendations