Trabalhando com o sistema de arquivos em Java: 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

Trabalho com o sistema de arquivos em Java: do básico às técnicas avançadas



Trabalhar com o sistema de arquivos é uma das tarefas fundamentais na programação. Java fornece aos desenvolvedores ferramentas poderosas e flexíveis para gerenciar arquivos e diretórios. Neste artigo, vamos detalhar como trabalhar com o sistema de arquivos em Java, usando tanto o pacote clássico java.io quanto o moderno java.nio.file. Você aprenderá a criar, ler, escrever arquivos, gerenciar diretórios e tratar exceções.



Fundamentos do trabalho com arquivos em Java: classe File



A classe java.io.File é a pedra angular do trabalho com o sistema de arquivos em Java. Ela representa uma abstração do caminho para um arquivo ou diretório. É importante entender que File não armazena o conteúdo do arquivo, apenas fornece métodos para verificar propriedades e executar operações.



Vamos considerar as operações básicas com File:



import java.io.File;import java.io.IOException;

public class FileExample { public static void main(String[] args) { // Criando um objeto File File file = new File("example.txt"); File directory = new File("myDirectory");

// Verificando existência System.out.println("Arquivo existe: " + file.exists()); System.out.println("Pasta existe: " + directory.exists());

// Criando um novo arquivo try { if (file.createNewFile()) { System.out.println("Arquivo criado: " + file.getName()); } else { System.out.println("Arquivo já existe"); } } catch (IOException e) { System.err.println("Erro ao criar arquivo: " + e.getMessage()); }

// Criando um diretório if (directory.mkdir()) { System.out.println("Pasta criada: " + directory.getName()); }

// Obtendo informações do arquivo System.out.println("Caminho absoluto: " + file.getAbsolutePath()); System.out.println("Tamanho do arquivo: " + file.length() + " bytes"); System.out.println("Legível: " + file.canRead()); System.out.println("Gravável: " + file.canWrite());

// Deletando o arquivo if (file.delete()) { System.out.println("Arquivo deletado"); } }}


A classe File também permite trabalhar com listas de arquivos em um diretório:



File currentDir = new File(".");String[] contents = currentDir.list();for (String item : contents) {    System.out.println(item);}


Leitura e escrita de arquivos: streams de entrada e saída



Para trabalhar diretamente com o conteúdo dos arquivos, Java usa streams de entrada e saída (I/O streams). As principais classes para trabalhar com arquivos de texto são FileReader/FileWriter e BufferedReader/BufferedWriter.



Lendo um arquivo linha por linha



import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;

public class ReadFileExample { public static void main(String[] args) { String fileName = "input.txt"; try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) { String line; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException e) { System.err.println("Erro ao ler arquivo: " + e.getMessage()); } }}


Observe a construção try-with-resources. Ela fecha automaticamente o stream, prevenindo vazamento de recursos.



Escrevendo em um arquivo



import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;

public class WriteFileExample { public static void main(String[] args) { String fil

Blogs

Book Recommendations