Trabalhando com o sistema de arquivos em Kotlin: guia completo para iniciantes

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

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



Trabalhar com o sistema de arquivos é uma das tarefas básicas que todo desenvolvedor enfrenta. Independentemente de você estar escrevendo um aplicativo de console, um serviço web ou um aplicativo móvel para Android, saber ler, escrever e gerenciar arquivos é uma habilidade obrigatória. Neste artigo, vamos detalhar como trabalhar com o sistema de arquivos em Kotlin, usando tanto os recursos padrão do Java quanto os recursos modernos da linguagem.



Kotlin é uma linguagem de programação moderna, concisa e segura, totalmente compatível com Java. Isso significa que você pode usar todos os recursos de java.io e java.nio.file, mas escrevendo um código muito mais curto e expressivo. O artigo é voltado para desenvolvedores iniciantes que já conhecem os fundamentos da sintaxe do Kotlin.



Principais classes e métodos para trabalhar com arquivos



Antes de passarmos à prática, vamos conhecer as principais classes necessárias para trabalhar com o sistema de arquivos em Kotlin:



  • java.io.File — classe principal para representar arquivos e diretórios.
  • java.nio.file.Path — interface moderna para trabalhar com caminhos.
  • java.nio.file.Files — classe utilitária com vários métodos estáticos.
  • java.io.BufferedReader e java.io.BufferedWriter — para leitura e escrita linha por linha.


Kotlin também possui suas próprias extensões convenientes para a classe File, que tornam o código ainda mais simples. Por exemplo, as funções readText(), writeText(), appendText() e outras.



Criação de arquivos e diretórios



Vamos começar com o mais simples — a criação de um arquivo. Em Kotlin, isso é feito em uma linha:



import java.io.File

fun main() { val file = File("example.txt") file.createNewFile() // cria o arquivo se ele não existir println("Arquivo criado: ${file.absolutePath}")}


Observe: createNewFile() retorna um Boolean — true se o arquivo foi criado e false se ele já existir. Para criar diretórios, use o método mkdir() ou mkdirs() (cria todas as pastas pai ausentes):



fun main() {    val dir = File("myFolder/subFolder")    if (dir.mkdirs()) {        println("Diretório criado: ${dir.absolutePath}")    } else {        println("Não foi possível criar o diretório")    }}


Leitura de dados de um arquivo



Existem várias maneiras de ler um arquivo em Kotlin. Vamos ver as mais populares.



Leitura do arquivo inteiro



Se o arquivo for pequeno, é conveniente ler seu conteúdo em uma única string ou em uma lista de linhas:



fun main() {    val file = File("readme.txt")        // Leitura de todo o texto em uma única string    val text: String = file.readText()    println("Conteúdo do arquivo:$text")        // Leitura linha por linha    val lines: List<String> = file.readLines()    lines.forEach { println("Linha: $it") }}


O método readText() retorna uma string, e readLines() retorna uma lista de linhas. Ambos os métodos fecham automaticamente o arquivo após a leitura, o que é seguro e conveniente.



Leitura linha por linha com buffer



Para arquivos grandes, é melhor usar BufferedReader para não carregar todo o arquivo na memória:



fun main() {    val file = File("large_file.txt")    file.bufferedReader().use { reader ->        var line: String?        while (reader.readLine().also { line = it } != null) {            println("Lendo: $line")        }    }}


A construção .use { } garante que o recurso será fechado após a conclusão do bloco, mesmo se ocorrer uma exceção.

Blogs

Book Recommendations