Leitura de arquivo

5 respostas
E

Senhores,

tenho uma aplicação que gera um log, onde as últimas linhas é algo parecido com abaixo:

login #:
resultado
login #:

preciso criar um método ou classe que eu consiga capturar exatamente a string resultado, ou seja, capturar o valor entre login #:

A’lguém pode me dar um help?

5 Respostas

T

Você tem de ler esse arquivo de log (que foi gerado em outra aplicação?)

Adolfo_Rodrigues

Você pode usar uma expressão regular
Ou ainda baixar o commons-lang da Apache. A classe StringUtils tem um método substringBetween(String s1, String s2).

E

Thingol,
Sim, isso mesmo…

e é um log gerado on-line.

Preciso capturar o resultado de um comando para verificação. A aplicação é o MindTerm. O que eu preciso, por exemplpo, é capturar o resultado de um grep.

mchiareli

sua duvida é ler o arquivo?

ou validar as strings??

T

Acho que o problema dele é o seguinte. Digamos que você tenha que usar o “grep”. Ele só bate com as linhas “login #:”, mas ele quer é o que está entre elas.

O jeito mais estúpido de fazer isso em Java é ler linha por linha, e se achar uma linha que começa por “login #”, ir acumulando as próximas linhas (em um java.util.List<String>, por exemplo) até achar uma que comece por “login #”. Isso é fácil de fazer mas um pouco trabalhoso.

BufferedReader br = new BufferedReader (new FileReader ("arquivo.log"));
String linha;
boolean achouLogin = false;
List<String> resultado = new ArrayList<String>();
while ((linha = br.readLine()) != null) {
    if (!achouLogin) {
        if (linha.startsWith ("login #")) {
            achouLogin = true;
            resultado.clear();
        } 
    } else {
        if (linha.startsWith ("login #")) {
            achouLogin = false;
            System.out.println (resultado);
        } else {
            resultado.add (linha);
        }
    }
}
br.close();
Criado 11 de junho de 2007
Ultima resposta 11 de jun. de 2007
Respostas 5
Participantes 4