Como fazer isso em java

4 respostas
S

Galera uso o sistema operacional windows e tenho uma pasta criada, dentro desta pasta tenho 50 arquivos .txt, o que eu precisava era o seguinte uma telinha que no caso pode ser desktop ou web que fizesse pesquisa dentro dos arquivos txt por exemplo no campo jtextfield escrevo a palavra chave “BACKUP” então o que o sisteminha precisa fazer pesquisar dentro dos arquivos que estao dentro de uma determinada pasta e retornar qual tem a palavra backup dentro do .txt!!!

Existe esta possibilidade?

Alguma ideia de como farei isso?

Grato.

4 Respostas

Rodrigo_Sasaki
Algo assim? (Eu tinha isso pronto aqui no meio dos projetos), eu fiz a um tempo atrás quando tinha um problema parecido com o seu :)
public class FileSearch implements Runnable{

	private File file;
	private String keyWord;

	public FileSearch(File file, String keyWord){
		this.file = file;
		this.keyWord = keyWord;
	}

	@Override
	public void run(){
		if (file.isDirectory()){
			File[] files = file.listFiles();
			for (File file : files){
				if (file.isDirectory()){
					if(file.getName().toUpperCase().contains(keyWord.toUpperCase())){
						System.out.println("Dir: "+file.getAbsolutePath());
					}
					FileSearch fileSearch = new FileSearch(file, keyWord);
					Thread t = new Thread(fileSearch);
					t.start();
				} else{
					searchFile(file, keyWord);
				}
			}
		}

	}

	private void searchFile(File file, String keyWord){
		keyWord = keyWord.toUpperCase();
		Scanner scanner = null;
		try{
			scanner = new Scanner(file);
			int count = 1;
			while (scanner.hasNext()){
				if (scanner.nextLine().toUpperCase().contains(keyWord)){
					System.out.println(file.getAbsolutePath() + " - Linha " + count);
				}
				count++;
			}
		} catch (FileNotFoundException e){
			System.out.println("Arquivo não encontrado: " + file.getAbsolutePath());
			e.printStackTrace();
		} finally{
			if (scanner != null)
				scanner.close();
		}
	}

}
S

E como vc passa um file como parametro ?

Criei um metodo construtor apenas para testar o seu metodo searchFile porém nao sei como passa esse file como parametro.

Rodrigo_Sasaki

Ué, é só instanciar um File, que é a pasta onde você deseja fazer a sua busca, e no outro parâmetro envia o que deseja procurar, no seu exemplo é a palavra chave “BACKUP”

Hammer

Pesquisa sobe Lucene, pode te ajudar…

Criado 3 de janeiro de 2013
Ultima resposta 3 de jan. de 2013
Respostas 4
Participantes 3