A classe java.nio.file.Files
representa uma ferramenta essencial na linguagem Java para a execução de operações sobre arquivos e diretórios. Integrada ao pacote java.nio.file
, ela introduz uma nova abordagem para o tratamento de arquivos, mais robusta e orientada a objetos, em comparação com a tradicional API de entrada/saída (java.io
). A nova API oferece funcionalidades mais avançadas e flexíveis para a manipulação de arquivos.
Esta classe fornece métodos abrangentes que possibilitam a criação, leitura, escrita, cópia, movimentação e exclusão de arquivos e diretórios. Adicionalmente, oferece recursos para a obtenção de informações relevantes, tais como tamanho, data de modificação e permissões de acesso.
Funções para a Gestão de Arquivos
Criação de Arquivos
public static Path createFile(Path path, FileAttribute<?>... attrs) throws IOException
- Esta função permite a criação de um novo arquivo em um caminho específico.
- O parâmetro
attrs
é opcional e concede a possibilidade de definir atributos para o arquivo recém-criado.
Escrita em Arquivos
public static Path write(Path path, byte[] bytes, OpenOption... options) throws IOException
- Esta função grava um vetor de bytes em um determinado arquivo.
- As opções
options
possibilitam configurar o modo de abertura do arquivo, comoAPPEND
para anexar dados ao final, ouTRUNCATE_EXISTING
para sobrescrever o conteúdo existente.
Leitura de Arquivos
public static byte[] readAllBytes(Path path) throws IOException
- Esta função realiza a leitura de todos os bytes de um arquivo, retornando-os em um vetor de bytes.
- É particularmente útil para arquivos menores.
Cópia de Arquivos
public static Path copy(Path source, Path target, CopyOption... options) throws IOException
- Esta função efetua a cópia de um arquivo, de um caminho de origem para um caminho de destino.
- Através das opções
options
, é possível determinar como a cópia será realizada, comoREPLACE_EXISTING
para sobrescrever um arquivo existente, ouCOPY_ATTRIBUTES
para copiar também os atributos do arquivo.
Movimentação de Arquivos
public static Path move(Path source, Path target, CopyOption... options) throws IOException
- Esta função move um arquivo, de um caminho de origem para um caminho de destino.
- As opções
options
permitem especificar como a movimentação será feita, comoREPLACE_EXISTING
ouCOPY_ATTRIBUTES
.
Exclusão de Arquivos
public static void delete(Path path) throws IOException
- Esta função exclui um arquivo do sistema de arquivos.
Funções para Obtenção de Informações
Tamanho do Arquivo
public static long size(Path path) throws IOException
- Esta função retorna o tamanho de um arquivo, expresso em bytes.
Data de Modificação
public static FileTime getLastModifiedTime(Path path) throws IOException
- Esta função recupera a data e a hora da última modificação de um arquivo.
Permissões
public static Set<PosixFilePermission> getPosixFilePermissions(Path path) throws IOException
- Esta função obtém um conjunto de permissões Posix para um determinado arquivo.
Verificação de Existência
public static boolean exists(Path path, LinkOption... options)
- Esta função verifica se um arquivo ou diretório existe.
- As opções
options
permitem configurar a verificação, comoFOLLOW_LINKS
para seguir links simbólicos, ouNOFOLLOW_LINKS
para não segui-los.
Considerações Finais
A classe java.nio.file.Files
é uma ferramenta de alta eficácia para a gestão de arquivos e diretórios em aplicações Java. Sua extensa gama de métodos facilita a execução de operações como criação, leitura, escrita, cópia, movimentação e exclusão, além de prover informações relevantes sobre arquivos e diretórios. A API java.nio.file
é fundamental para desenvolvedores Java que precisam interagir com o sistema de arquivos.
Perguntas Frequentes
P: Como posso criar um arquivo com atributos específicos?
R: Utilize a função createFile
e especifique os atributos desejados através do parâmetro attrs
.
P: Qual a forma de gravar uma string em um arquivo?
R: Utilize a função write
, após converter a string em um vetor de bytes utilizando o método getBytes()
.
P: Como posso ler o conteúdo de um arquivo para uma string?
R: Use a função readAllBytes
para ler o arquivo para um vetor de bytes, depois converta o vetor de bytes em string através de new String(bytes)
.
P: Como posso copiar um arquivo para outro diretório?
R: Utilize a função copy
, informando o caminho do diretório de destino como segundo parâmetro.
P: Como posso renomear um arquivo?
R: Use a função move
, especificando o novo nome do arquivo como segundo parâmetro.
P: Como posso verificar se um arquivo é um link simbólico?
R: Utilize o método isSymbolicLink
da classe Files
.
P: Como posso obter o caminho absoluto de um arquivo?
R: Utilize o método toAbsolutePath
da classe Files
.
P: Como posso obter o caminho canônico de um arquivo?
R: Utilize o método toRealPath
da classe Files
.
P: Qual é a forma de criar um diretório?
R: Use o método createDirectory
da classe Files
.
P: Como posso excluir um diretório recursivamente?
R: Utilize o método walkFileTree
da classe Files
, e exclua arquivos e diretórios durante a navegação pela estrutura de diretórios.