alguem poderia me dar umas dicas de como eu poderia buscar uma palavra em um arquivo?
o user digita uma palavra e o programa mostra quantas vezes a palavra apareceu
alguem poderia me dar umas dicas de como eu poderia buscar uma palavra em um arquivo?
o user digita uma palavra e o programa mostra quantas vezes a palavra apareceu
Se quiser contar quantas linhas contém uma determinada palavra em um arquivo, o comando é este aqui:
grep -i palavra arquivo | wc -l
requer alguma versão do Unix/Linux, ou então o cygwin ou o UnixUtils (no caso do Windows).
eu nao tenho isso que voce falou… eu so gostaria de saber como faço para achar quantas vezes a palavra esta
fiz algo assim… mas da problemas na validação do arquivo
[code]import java.util.;
import java.io.;
public class dois {
public static void main (String[] args)
{
Scanner leitor = new Scanner(System.in);
String caminho = "c:\file.txt",palavra ="",aux="";
String info;
int i,cont = 0;
System.out.printf("\nInforme uma palavra para a busca: ");
palavra = leitor.nextLine();
try
{
RandomAccessFile arq = new RandomAccessFile(caminho,"r");
for (i = 0; i < arq.length(); i++)
{
try
{
info = arq.readLine();
aux = info;
}
catch(Exception ioe)
{
System.out.printf("\nProblemas aa");
}
}
arq.close();
}
catch(Exception ioe)
{
System.out.printf("\nProblemas a1");
}
System.out.printf("\nPalavra encontrada %s vez(es): ",aux);
System.out.printf("\nPalavra encontrada %d vez(es): ",cont);
}
}
[/code]
na verdade ele esta sem a busca mas quero ver se pelo menos ele copia para az string auxiliar para fazer a comparação com o equals…porem da problemas com o arq e nao o lê
Para ler um arquivo linha por linha, use BufferedReader:
BufferedReader br = null;
try {
br = new BufferedReader (new FileReader ("arquivo.txt"));
for (String linha = br.readLine(); linha != null; linha = br.readLine()) {
// faça alguma coisa com a linha que você leu
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
try { if (br != null) br.close(); } catch (IOException ex) {}
}
o que seria essa variavel br? vc deu um close nela… :s
java.io.BufferedReader - veja a documentação, por obséquio.
http://java.sun.com/javase/6/docs/api/java/io/BufferedReader.html
blz entendi… no for ele esta lendo linha por linha ate o final do arquivo… que seria null
mas o meu problema é como pegar a palavra para comparar sendo que ele le a linha inteira
É o seguinte, amigo: leia o arquivo uma linha de cada vez. Então procure a palavra nessa linha.
Em arquivos-texto, você pode ler o arquivo uma linha de cada vez (que é mais fácil) ou um caracter de cada vez (o que é muito, muito mais lento).
Uma outra maneira é utilzando expressão regular.
Abaixo segue o código:
public void procuraArquivo() throws Exception{
BufferedReader b = new BufferedReader(new FileReader("c:\teste.txt"));
StringBuffer textoDoArquivo = new StringBuffer();
String linha = null;
while((linha = b.readLine()) !=null){
textoDoArquivo.append(linha);
}
System.out.print("Digite a letra a ser pesquisada: ");
String palavra = new Scanner(System.in).next();
Matcher m = Pattern.compile(palavra).matcher(textoDoArquivo);
int numeroDeOcorrencias = 0;
while (m.find()){
numeroDeOcorrencias++;
}
System.out.println("Total de palavras encontradas: " + numeroDeOcorrencias);
b.close();
}
Espero ter ajudado.
Pra que percorrer o arquivo inteiro para lê-lo e jogá-lo numa String só para depois percorrer tudo de novo com regex, se na primeira leitura você já poderia pergunta se tem a palavra procurada na linha?
Dica: dê uma olhada nos métodos da String.
Boas Pessoal
Estou com duvidas na leitura de um ficheiro, como faço para ler a determinar de um certo ponto do ficheiro.
exemplo do ficheiro: só quero tirar de lá porto e lisboa.
Pretendo instalar este sistema usando o BufferedReader.
alguem que me possa ajudar please, estou neste momento preso no trabalho por este pormenor
Use SAX: http://www.loiane.com/2009/05/manipulando-arquivos-xml-em-java-com-a-api-sax-parte-i/
No final da página tem links pra continuação do tutorial.