Pesquisa de expressões em ficheiros

[quote=bmbsimoes]Boa tarde

Tenho um exercício para fazer que é criar um programa para realizar pesquisas em ficheiros,
se a expressão existir no ficheiro deve ser indicada a linha ou linhas onde se encontra, caso contrário
deve ser indicado que a expressão não foi encontrada. talvez utilizando o método indexOf ou o contains???

respeitando o seguinte esboço:

dados pedidos ao utilizador

Ficheiro: dados.txt
Expressão: rolha

o ficheiro dados.txt contem a expressão rolha na linha 2.

Exemplo de conteúdo do ficheiro:

o rato roeu
a rolha da garrafa
de rum do rei da Rússia .

Como sou novo nisto apenas consigo fazer o seguinte:

[code]import java.io.*;

public class LeFicheiro {

public static void main(String[] args) throws Exception {


	BufferedReader teclado = new BufferedReader(
			new InputStreamReader (System.in));

	String file,expressao;
	
	System.out.println("PESQUISA DE EXPRESSÕES EM FICHEIROS");
	
	System.out.println("Ficheiro: ");
	file = teclado.readLine();
	
	BufferedReader input = new BufferedReader(new InputStreamReader( 
			new FileInputStream(new File(file))));
	
	System.out.println("Expressão a pesquisar: ");
	
	
	int pesquisa = file.indexOf(teclado.readLine());
    
    if(pesquisa == -1)
        System.out.println("O valor pesquisado não foi encontrado.");
      else
        System.out.println("O valor foi encontrado no índice: " + pesquisa); 
	
}

}[/code]

Se alguém poder ajudar.

obrigado[/quote]

Abra o arquivo que deseja pesquisar através de um BufferedReader, extraia as linhas do arquivo via BufferedReader.readLine() e em seguida use String.indexOf() ou String.contains() em cada linha lida:

http://www.exampledepot.com/egs/java.io/ReadLinesFromFile.html