Trabalho com o sistema de arquivos em Java: guia prático

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: guia prático



Trabalhar com o sistema de arquivos é uma das tarefas fundamentais na programação. Em Java, existe um conjunto poderoso e flexível de ferramentas para isso, desde o pacote clássico java.io até o moderno java.nio.file. Neste artigo, com exemplos práticos, veremos como criar, ler, escrever e excluir arquivos, além de trabalhar com diretórios.



1. Classe File: base do trabalho com arquivos



A classe java.io.File é a classe básica para representar o caminho para um arquivo ou diretório. Ela permite verificar a existência, criar, renomear e excluir objetos do sistema de arquivos.



Criação e verificação de existência de arquivo



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

public class FileExample { public static void main(String[] args) { File file = new File("example.txt");

if (file.exists()) { System.out.println("Arquivo existe: " + file.getAbsolutePath()); } else { try { if (file.createNewFile()) { System.out.println("Arquivo criado: " + file.getName()); } } catch (IOException e) { System.err.println("Erro ao criar arquivo: " + e.getMessage()); } }

// Verificação de propriedades System.out.println("Legível: " + file.canRead()); System.out.println("Gravável: " + file.canWrite()); System.out.println("Tamanho: " + file.length() + " bytes"); }}


Trabalho com diretórios



File dir = new File("my_directory");

if (dir.mkdir()) { System.out.println("Diretório criado");}

// Criação de diretórios aninhadosFile nestedDir = new File("parent/child/grandchild");if (nestedDir.mkdirs()) { System.out.println("Diretórios aninhados criados");}

// Obter lista de arquivosString[] files = dir.list();for (String fileName : files) { System.out.println(fileName);}


2. Leitura e escrita de arquivos com FileReader/FileWriter



Para trabalhar com arquivos de texto, é conveniente usar as classes FileReader e FileWriter. Elas operam no nível de caracteres e suportam codificações.



Escrita em arquivo



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

public class WriteExample { public static void main(String[] args) { try (FileWriter writer = new FileWriter("output.txt", true)) { writer.write("Olá, mundo!"); writer.write("Esta é a segunda linha."); writer.flush(); System.out.println("Dados gravados com sucesso"); } catch (IOException e) { System.err.println("Erro de escrita: " + e.getMessage()); } }}


Observe: o segundo parâmetro true no construtor FileWriter ativa o modo de anexação (append). Se for omitido, o arquivo será sobrescrito.



Leitura de arquivo



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

public class ReadExample { public static void main(String[] args) { try (BufferedReader reader = new BufferedReader(new FileReader("output.txt"))) { String line; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException e) { System.err.println("Erro de leitura: " + e.getMessage()); } }}


O uso de BufferedReader acelera significativamente a leitura de arquivos grandes devido ao buffer.



3. Abordagem moderna: java.nio.file (NIO.2)



A partir do Java 7, surgiu o pacote java.nio.file, que oferece ferramentas mais convenientes e performáticas para

Blogs

Book Recommendations