Tenho o seguinte código que lê um txt, altera algumas coisas nele e grava em um outro txt:
import java.io .*;
public class Arquivo{
public static void main(String[] args){
try {
FileReader ler = new FileReader(new File("C:\\as11hm.txt"));
BufferedReader origem = new BufferedReader(ler);
FileWriter gravar = new FileWriter(new File("C:\\as11hm_mod.txt"),false);
PrintWriter destino = new PrintWriter(gravar,true);
String linha;
char Char;
while(origem.ready()) {
linha = origem.readLine().replace('<',';').replace('>',' '); //replaceAll("<", ";");
gravar.write(linha + "\n");
}
destino.close();
gravar.close();
origem.close();
ler.close();
}
catch(FileNotFoundException ex1) {
System.out.println("Arquivo não encontrado.");
}
catch(IOException ex2) {
System.out.println("Erro -> " + ex2);
}
}
}
<WebLogic Server “as11hm” version:
WebLogic Server 8.1 SP4 Mon Nov 29 16:21:29 PST 2004 471647
WebLogic XMLX Module 8.1 SP4 Mon Nov 29 16:21:29 PST 2004 471647 © 1995, 1996, 1997, 1998 WebLogic, Inc.>
Este trecho teria que ser gravado na mesma linha no novo arquivo, mas no arquivo origem esta em três linhas. O que posso fazer?
cassio
Julho 14, 2006, 3:25pm
#2
Tire o “\n” !!!
Ao invés de fazer:
linha = origem.readLine().replace('<',';').replace('>',' '); //replaceAll("<", ";");
gravar.write(linha + "\n");
Faça:
linha = origem.readLine().replace('<',';').replace('>',' '); //replaceAll("<", ";");
gravar.write(linha);
Falou!
Cara não funcionou, ficou tudo numa linha só, mas o arquivo é bem grande, não contém apenas as 3 linhas que eu postei!
Alguém teria uma outra dica
Valeu!
cassio
Julho 14, 2006, 3:44pm
#4
Foi vc mesmo que disse que teria que ficar tudo na mesma linha…
cas0512:
<WebLogic Server “as11hm” version:
WebLogic Server 8.1 SP4 Mon Nov 29 16:21:29 PST 2004 471647
WebLogic XMLX Module 8.1 SP4 Mon Nov 29 16:21:29 PST 2004 471647 © 1995, 1996, 1997, 1998 WebLogic, Inc.>
Este trecho teria que ser gravado na mesma linha no novo arquivo, mas no arquivo origem esta em três linhas. O que posso fazer?
Mas se quiser q fique na mesma linha somente os trechos entre "< "e "> " (não sei se entendi direito) posta ai um trecho do teu arquivo pra eu dar uma olhada…
Seria apenas os trechos entre <>
Trecho do arquivo:
As linhas começam com ####
####<Jul 7, 2006 2:41:44 AM GMT-03:00> <> <> <Starting WebLogic Managed Server “as11hm” for domain “Londres”>
####<Jul 7, 2006 2:41:44 AM GMT-03:00> <> <> <WebLogic Server “as11hm” version:
WebLogic Server 8.1 SP4 Mon Nov 29 16:21:29 PST 2004 471647
WebLogic XMLX Module 8.1 SP4 Mon Nov 29 16:21:29 PST 2004 471647 © 1995, 1996, 1997, 1998 WebLogic, Inc.
© 1999, 2000, 2001 BEA Systems, Inc.>
cassio
Julho 14, 2006, 4:12pm
#7
Amigo, com algumas alterações no código da pra fazer isso sem problema…
Vc teria que verificar se a linha tem um "< " e começar a gravar sem o “\n” (concatenando as linhas.
Quando encontrar um “>” grava o "\n"no arquivo de saida e repete este procedimento até o fim do arquivo… Nada que expressões regulares e um laço while não façam…
Falou!
Você não teria um exemplo?
Alguém não teria um exemplo para me mostrar?
Tenho que usar o método endsWith(">")?
cassio
Julho 14, 2006, 6:53pm
#10
Se vc tiver certeza de que todas as linhas que fecham blocos tem o caracter “>” no fim, pode ser… vc teria q se certificar de quew não existem fechamento de blocos no meio das linhas das linhas, pois neste caso o endsWith(">") falharia
Falou!