Busca palavra em arquivo

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.

porto lisboa

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.