Busca de Arquivos de Texto em Diretório

JavaBeginner
Pratique Agora

Introdução

Neste projeto, você aprenderá como pesquisar arquivos de texto em um diretório usando Java. Este projeto irá guiá-lo através do processo de obter o caminho de entrada do usuário, validar a entrada, encontrar todos os arquivos de texto no diretório e imprimir seus nomes.

👀 Pré-visualização

Please enter the read path:/home/labex/project/files
Found text files:
file1.txt
file3.txt
file6.txt

🎯 Tarefas

Neste projeto, você aprenderá:

  • Como usar a classe Scanner para obter a entrada do usuário para o caminho do diretório
  • Como validar o caminho de entrada usando a classe File
  • Como criar um FilenameFilter (filtro de nome de arquivo) personalizado para filtrar arquivos de texto
  • Como usar o método listFiles() para encontrar todos os arquivos de texto no diretório
  • Como iterar pelos arquivos de texto encontrados e imprimir seus nomes

🏆 Conquistas

Após concluir este projeto, você será capaz de:

  • Obter a entrada do usuário para um caminho de diretório usando a classe Scanner
  • Validar o caminho de entrada usando a classe File
  • Implementar um FilenameFilter (filtro de nome de arquivo) personalizado para filtrar arquivos de texto
  • Utilizar o método listFiles() para recuperar todos os arquivos de texto em um diretório
  • Iterar pelos arquivos de texto encontrados e imprimir seus nomes

Obter o Caminho de Entrada

Nesta etapa, você aprenderá como usar a classe Scanner para obter o caminho especificado do usuário.

  1. Abra o arquivo SelectTxtFile.java no seu editor de código.
  2. No método main, crie um novo objeto Scanner para ler a entrada do usuário:
Scanner scanner = new Scanner(System.in);
  1. Exiba uma mensagem de prompt para o usuário solicitando o caminho de leitura:
System.out.print("Please enter the read path:");
  1. Use o método nextLine() para ler a entrada do usuário e armazená-la na variável path:
String path = scanner.nextLine();
  1. Após ler a entrada, feche o Scanner para liberar os recursos:
scanner.close();

Validar o Caminho de Entrada

Nesta etapa, você aprenderá como usar a classe File para verificar se o caminho de entrada é um diretório válido.

  1. Crie um novo objeto File com o path fornecido pelo usuário:
File directory = new File(path);
  1. Use o método exists() para verificar se o diretório existe:
if (!directory.exists() || !directory.isDirectory()) {
  1. Se o diretório não existir ou não for um diretório, imprima uma mensagem de erro e saia do programa:
    System.out.println("The directory does not exist, or it is not a directory");
    return;
}

Encontrar Arquivos de Texto no Diretório

Nesta etapa, você aprenderá como usar um FilenameFilter para encontrar todos os arquivos de texto no diretório.

  1. Crie uma nova classe TxtFileFilter que implementa a interface FilenameFilter:
static class TxtFileFilter implements FilenameFilter {
    @Override
    public boolean accept(File dir, String name) {
        return name.toLowerCase().endsWith(".txt");
    }
}
  1. Use o método listFiles() da classe File para obter um array de arquivos no diretório, filtrando-os com o TxtFileFilter:
File[] files = directory.listFiles(new TxtFileFilter());

Imprimir os Arquivos de Texto Encontrados

Nesta etapa final, você aprenderá como iterar pelos arquivos de texto encontrados e imprimir seus nomes.

  1. Imprima um cabeçalho para indicar que os arquivos de texto foram encontrados:
System.out.println("Found text files:");
  1. Use um loop for-each para iterar pelo array files e imprimir o nome de cada arquivo:
for (File file : files) {
    System.out.println(file.getName());
}

É isso! Você concluiu o projeto de busca por arquivos de texto em um diretório. Você pode testar seu programa executando a classe SelectTxtFile.

Verificando o Programa Java para Busca de Arquivos

Nesta etapa, vamos verificar o programa Java de busca de arquivos.

  1. Abra seu terminal e compile o arquivo Java usando o comando javac:
javac SelectTxtFile.java
  1. Após compilar o arquivo Java com sucesso, execute o programa compilado usando o comando java:
java SelectTxtFile
  1. Ao executar o programa Java, você será solicitado a inserir o caminho de leitura. Forneça o caminho do diretório onde os arquivos de texto estão localizados e pressione Enter.
  • Se o diretório não existir ou não for um diretório, você receberá uma mensagem indicando o problema.
  • Se o diretório for válido e contiver arquivos de texto, o programa exibirá os nomes dos arquivos de texto encontrados nesse diretório.

Aqui está um exemplo da saída esperada:

Please enter the read path:/home/labex/project/files
Found text files:
file1.txt
file3.txt
file6.txt

Seguindo estas etapas, você pode verificar a funcionalidade do programa Java para selecionar arquivos de texto.

Resumo

Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.

✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar