Busca em arquivo TXT

1 resposta
G

Galera, boa tarde!

Gostaria de uma ajuda para fazer uma busca de palavras em arquivo txt. Eu fiz um esboço de um código mas não sei como incluir uma busca por palavras. Podem ajudar?!

import java.io.BufferedReader;  
    import java.io.FileReader;  
    import java.io.IOException;  
    import java.util.ArrayList;  
    import java.util.Arrays;  
    import java.util.List;  
    import java.util.Set;  
    import java.util.TreeSet;  
      
    class TesteArquivoTexto {  
        public static void main (String[] args) {  
            List<String> listaLinhas = new ArrayList<String>();  
            Set<String> conjuntoPalavras = new TreeSet<String>();  
            BufferedReader br = null;  
            try {  
                br = new BufferedReader (new FileReader ("C:\\New Folder\\Procedimento CDR.txt"));  
                for (String linha = br.readLine(); linha != null; linha = br.readLine()) {  
                    listaLinhas.add (linha);  
                    String[] palavras = linha.split ("[^A-Za-z0-9_]+");  
                    conjuntoPalavras.addAll (Arrays.asList (palavras));  
                }  
            } catch (IOException ex) {  
                ex.printStackTrace();  
            } finally {  
                if (br != null) try { br.close(); } catch (IOException ex) {}  
            }  
            System.out.println ("As palavras encontradas no arquivo são:");  
            System.out.println (conjuntoPalavras);  
            System.out.printf ("O arquivo contém %d linhas%n", listaLinhas.size());  
        }  
      
    }

Vlw

1 Resposta

M

olha só… dei uma alterada na sua classe, vc testa, ok !. mas depois que você pegou tudo do arquivo Procedimento CDR.txt e adicionou no conjuntoPalavras, você pode
fazer assim:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;

class TesteArquivoTexto {
	public static void main(String[] args) {
		List<String> listaLinhas = new ArrayList<String>();
		Set<String> conjuntoPalavras = new TreeSet<String>();
		BufferedReader br = null;
		try {
			br = new BufferedReader(new FileReader(System.getProperty("user.dir") + File.separator + "procurarNesteArquivo.txt"));
			for (String linha = br.readLine(); linha != null; linha = br
					.readLine()) {
				listaLinhas.add(linha);
				String[] palavras = linha.split("[^A-Za-z0-9_]+");
				conjuntoPalavras.addAll(Arrays.asList(palavras));
			}
			StringBuilder sb = new StringBuilder(conjuntoPalavras.toString());
			
			int posicao = 0;
			int achou = 0;
			String procurarPor = "complemento";
			posicao = sb.indexOf(procurarPor);
			int tamanhoDaBusca = procurarPor.length();

			while (posicao != -1) {
				posicao = sb.indexOf(procurarPor);
				sb.delete(0, posicao + tamanhoDaBusca);
				achou++;
				posicao = sb.indexOf(procurarPor);
			}
			System.out.println("total encontrado " + achou);

		} catch (IOException ex) {
			ex.printStackTrace();
		} finally {
			if (br != null)
				try {
					br.close();
				} catch (IOException ex) {
				}
		}
		System.out.println("As palavras encontradas no arquivo são:");
		System.out.println(conjuntoPalavras);
		System.out.printf("O arquivo contém %d linhas%n", listaLinhas.size());
	}
}
Criado 23 de janeiro de 2013
Ultima resposta 26 de jan. de 2013
Respostas 1
Participantes 2