Modificação de txt

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?

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!

Foi vc mesmo que disse que teria que ficar tudo na mesma linha…

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.>

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(">")?

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 :slight_smile:

Falou!