Ler arquivo e criar outro com base na linha encontrada

5 respostas
G

Pessoal,

Quero fazer um programinha que leia um arquivo texto e caso encontra-se uma mensagem de ‘Error’, gerase um arquivo, onde neste arquivo constaria todos os ‘Error’.

Como começar?!
Que classe utilizar?

Estou tentando utilizar a java.util.logging… mas nao consigo fazer a comparação para gerar o outro aerquivo…

Ideias please!

Abraços

5 Respostas

T

Isso existe pronto. Use o utilitário "grep" do Unix ou "findstr" do Windows. Exemplo:

(Linux, Unix)
grep -i Error arquivo.txt > erros.txt

(Windows)
findstr /i Error arquivo.txt > erros.txt

Se precisar fazer 100% Java, use as seguintes classes:

java.io.FileReader, java.io.BufferedReader, java.io.FileWriter, java.io.BufferedWriter, java.lang.String, java.util.regex.Pattern e Matcher (se quiser usar expressões regulares. Mas no seu caso java.lang.String sozinha já é suficiente - use "indexOf".)

G

thingol,

pesquisei sobre o metodo indexOf(), mas ele retornara um int com a 1ª posicao da palavra procurada.

Como posso fazer?!

Nao entendi muito bem de como utilizar e resolver o problema.

T

indexOf volta -1 se não achar a palavra.

G

Tem um jeito de tirar esse cabecalho tosco do logging???
11/02/2008 15:59:03 FindInLogText main

T

Tire o cabeçalho tosco também.

grep -i Error arquivo.txt | grep -i -v FindInLogText > erros.txt

-i = Ignore a diferença entre minúsculas e maiúsculas
-v = Copie tudo, EXCETO as linhas que contiverem o texto mostrado.

Criado 11 de fevereiro de 2008
Ultima resposta 11 de fev. de 2008
Respostas 5
Participantes 2