0Pricing
Java Academy · Aula

Path: Representação de Locais de Arquivos

Crie objetos Path, resolva e relativize caminhos e manipule componentes de caminhos.

Path: Representação de Locais de Arquivos é uma aula grátis de Java Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Java Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Java Academy inclui 4 aulas no total.

Introdução a Caminhos

A interface java.nio.file.Path representa a localização de um arquivo ou diretório no sistema de arquivos. Ela substitui a classe legada java.io.File por uma API mais completa e independente de plataforma.

import java.nio.file.*;

Path p1 = Path.of("/home/user/documents/report.txt");
Path p2 = Paths.get("/home", "user", "documents", "report.txt");

System.out.println(p1); // /home/user/documents/report.txt
System.out.println(p1.equals(p2)); // true

Componentes de um Caminho

Extraia os componentes de um caminho:

Path path = Path.of("/home/user/docs/report.txt");

System.out.println(path.getFileName()); // report.txt
System.out.println(path.getParent());   // /home/user/docs
System.out.println(path.getRoot());     // /
System.out.println(path.getNameCount()); // 4
System.out.println(path.getName(0));    // home
System.out.println(path.getName(3));    // report.txt

Caminhos Relativos e Absolutos

Um caminho pode ser absoluto (começa na raiz) ou relativo (a partir do diretório atual). Use isAbsolute() para verificar e toAbsolutePath() para resolver um caminho relativo em relação ao diretório de trabalho atual.

Path rel = Path.of("docs/report.txt");
Path abs = Path.of("/home/user/docs/report.txt");

System.out.println(rel.isAbsolute()); // false
System.out.println(abs.isAbsolute()); // true

Path resolved = rel.toAbsolutePath(); // resolves against CWD
System.out.println(resolved);

resolve: Combinando Caminhos

resolve(other) anexa outro caminho. Se other for absoluto, ele substituirá completamente o caminho atual.

Path base = Path.of("/home/user");
Path docs = base.resolve("documents");
Path file = docs.resolve("report.txt");

System.out.println(file); // /home/user/documents/report.txt

// Resolving an absolute path replaces:
Path abs = base.resolve(Path.of("/etc/config"));
System.out.println(abs); // /etc/config

relativize: Calculando Caminhos Relativos

relativize(other) calcula o caminho relativo deste caminho até other:

Path from = Path.of("/home/user");
Path to   = Path.of("/home/user/docs/report.txt");

Path rel = from.relativize(to);
System.out.println(rel); // docs/report.txt

// Verify:
System.out.println(from.resolve(rel)); // /home/user/docs/report.txt

normalize: Removendo Redundâncias

normalize() remove os segmentos . e .. de um caminho:

Path messy = Path.of("/home/user/../user/./docs/./report.txt");
Path clean = messy.normalize();
System.out.println(clean); // /home/user/docs/report.txt

startsWith e endsWith

Verifique as relações de prefixo e sufixo entre caminhos:

Path p = Path.of("/home/user/docs/report.txt");

System.out.println(p.startsWith("/home/user")); // true
System.out.println(p.startsWith("/home/other")); // false
System.out.println(p.endsWith("report.txt"));    // true
System.out.println(p.endsWith("docs/report.txt")); // true

Convertendo para um Arquivo e uma URI

Converta um caminho para a classe legada de arquivo ou para uma URI quando necessário:

Path path = Path.of("/home/user/report.txt");

java.io.File file = path.toFile();
System.out.println(file.exists()); // depends on filesystem

java.net.URI uri = path.toUri();
System.out.println(uri); // file:///home/user/report.txt

Caminhos em Diferentes Plataformas

Path.of() usa o separador da plataforma. No Windows, os caminhos usam barra invertida; no Unix, usam barra normal. A API lida com isso de forma transparente.

// Portable path construction (works on all platforms):
Path config = Path.of("config", "app", "settings.json");
// On Unix: config/app/settings.json
// On Windows: config\app\settings.json
System.out.println(config);

Iterando pelos Elementos de um Caminho

Use um laço for-each ou iterator() para iterar pelos elementos de nome individuais:

Path path = Path.of("/home/user/docs/report.txt");

for (Path element : path) {
    System.out.println(element); // home, user, docs, report.txt
}
// Note: root ("/") is not included in iteration

subpath: Extraindo um Trecho

subpath(begin, end) retorna um caminho relativo para um intervalo de elementos de nome:

Path p = Path.of("/home/user/docs/report.txt");
// Indices: home=0, user=1, docs=2, report.txt=3

System.out.println(p.subpath(1, 3)); // user/docs
System.out.println(p.subpath(0, 2)); // home/user

Verificação Rápida

Dado Path.of("/home/user").resolve("docs/file.txt"), qual é o resultado?

Recapitulação: API de Caminhos

Principais conclusões:

  • Path.of() / Paths.get() criam instâncias de caminho
  • getFileName, getParent, getRoot, getName, getNameCount para obter componentes
  • resolve() anexa; relativize() calcula o caminho relativo; normalize() remove ./ e ../
  • startsWith/endsWith para verificar prefixos e sufixos
  • Independente de plataforma — o separador é tratado automaticamente

Perguntas Frequentes

A aula “Path: Representação de Locais de Arquivos” é grátis?

Sim — o texto completo de “Path: Representação de Locais de Arquivos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Java Academy, atualize para CoddyKit PRO. O curso de Java Academy inclui 4 aulas no total.

O que vou aprender em “Path: Representação de Locais de Arquivos”?

Crie objetos Path, resolva e relativize caminhos e manipule componentes de caminhos. Você pratica Java Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Java Academy?

Nenhuma experiência prévia é necessária. Java Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Path: Representação de Locais de Arquivos”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Java Academy?

Sim. Cada aula de Java Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Path: Representação de Locais de Arquivos
  2. Utilitário Files: Ler, Escrever, Copiar e Mover
  3. Percurso de Árvores de Diretórios com Files.walk
  4. WatchService: Monitoramento de Alterações em Arquivos
← Voltar para Java Academy