Pegar String em txt

senhores como faço para meu programa procurar a ultima palavra informada em um arquivo txt que meu programa le?

Ex tenho um programinha que le um arquivo txt com centenas de linhas, dentro desse arquivo txt, existe uma método que aparece toda hora (ex: ProgramarCampos), quero saber como faço para o meu programa que lê as linhas, me informar a ultima hora que essa palavra foi encontrada por ultimo.

Tenho um metodo que lê todo o programa, nao consigo fazer ele procurar por essa palavra e informar quando ela foi chamada por ultimo.

 public void verificar() throws FileNotFoundException, IOException {
        
        String Linha = new String();
        String NomeArquivo = "C://export/log.txt";
        File arq = new File(NomeArquivo);
        
        int linhaEncontrada = -1;
        if (arq.exists()) {

            FileReader leitordeArquivos = new FileReader(NomeArquivo);
            BufferedReader bufferdeArquivo = new BufferedReader(leitordeArquivos);
            while (true) {
                Linha = bufferdeArquivo.readLine();
                if (Linha == null) {
                    break;
                }
                System.out.println(Linha);
            }

        } else {
            JOptionPane.showMessageDialog(null, "log nao encontrado! ");
        }
    }

Dá uma olhada no método lastIndexOf(String str) da classe String. É a forma mais simples de adaptar o código que você já tem.

Cria uma variável para armazenar o número da linha e uma para armazenar o índice da última aparição da str que você tá procurando. Toda vez que você chamar o lastIndexOf na linha do arquivo e o método retornar algo diferente de -1 (o valor quando a str não é encontrada), você armazena o número da linha e o índice encontrado.

Provavelmente existe uma maneira mais eficiente de fazer isso, mas de qualquer forma, você vai precisar percorrer o arquivo pelo menos uma vez.

Uma estrutura de dados que pode ser utilizada para fazer buscas mais eficientes é o Inverted Index. Se você faz buscas constantes no mesmo arquivo, vale a pena lê-lo apenas uma vez e gerar uma estrutura de busca, ao invés de ficar lendo do disco toda hora.

Cara, um Jeito bem fácil e simples:
String conteudo = null;
try{
conteudo = new String(Files.readAllBytes(arq.toPath());
}catch(java.io.IOException e){ /*faz qualquer coisa com o erro */}

Ele falou que o arquivo é grande. Carregar tudo na memória pode não ser algo muito prudente.

Está certo, Nao tinha lido a parte que ele disse centenas, realmente, algo grande nao é NADA prudente

Cliquei sem querer e postou, mas tenho algo aqui que pode te ajudar, vou editar aqui em breve.