Modificação de um arquivo txt

Preciso modificar o arquivo .txt abaixo, substituindo todos os “<” e “>” por “;” e salvando em um novo arquivo:

####<Jul 7, 2006 2:41:17 AM GMT-03:00> <Log Managem ;t> <> <> <The server log file /weblogic7/wls814_donotdelete/risc46a/bea/user_projects/domains/Londres/as11hm/as11hm.log is opened. All server side log events will be written to this file.>

O código abaixo faz a cópia:

import java.io.*;

public class Arquivo{

public static void main(String[] args){
    
    try {
        
        // Abrindo um arquivo texto para Leitura 
        FileReader ler = new FileReader(new File("C:\\as11hm.log"));
        BufferedReader origem = new BufferedReader(ler);

        // Abrindo um arquivo texto para Gravação
        // A opção "True" abre o arquivo sem apagar o conteúdo.
        FileWriter gravar = new FileWriter(new File("C:\\destino.txt"),false);
     
        // A opção "True" envia para o arquivo a cada println.
        PrintWriter destino = new PrintWriter(gravar,true);
    
        // Lendo as linhas do arquivo origem...   
        String linha;
     
        while ((linha = origem.readLine()) != null) {
            
            destino.println(linha);
        }
         
        // Fechando o arquivo de destino
     
        destino.close();
        gravar.close();
    
        // Fechando o arquivo de origem
        origem.close();
        ler.close();
    }
    
    catch(FileNotFoundException ex1) {
        
        System.out.println("Arquivo não encontrado.");
    }
 
    catch(IOException ex2) {
        
        System.out.println("Erro -> "+ ex2);
    }
}

}

O que devo usar para copiar com as modificações?

Muito Obrigado!

Cristiano Alves dos Santos

Hum…

FileReader fReader = new FileReader(new File("caminho para o seu arquivo"));
BufferedReader bReader = new BufferedReader(fReader);
FileWriter fWriter = new FileWriter("caminho apra o arquivo modificado");
String linha;
while(bReader.ready()) {
   linha = bReader.readLine().replaceAll("[<>]", ";");
   fWriter.write(linha);   
}
fWriter.close();
bWriter.close();

Acho que da certo…

Cara, não funcionou, grava uma porção de caracteres estranhos no arquivo destino!

Alguém tem outra sugestão

[quote=cas0512]Cara, não funcionou, grava uma porção de caracteres estranhos no arquivo destino!

Alguém tem outra sugestão[/quote]

HUm…estranho!!!
era para ter funcionado!!!
e agora…alguém tem uma idéia?:expressionless:

Tenta mudar esse techo:

... // Lendo as linhas do arquivo origem... String linha; String linhaNova while ((linha = origem.readLine()) != null) { linhaNova = linha.replaceAll("[<>]", ";"); destino.println(linhaNova); } ...

Cara, fiz essa classe de teste com o código que eu havia postado:

import java.io.File;
import java.io.*;

public class Main {

	
	public static File destFile;
	public static File origFile;
	
	public void copyModifiedFile() {
		try {
			FileReader fReader = new FileReader(origFile);
			BufferedReader bReader = new BufferedReader(fReader);
			FileWriter fWriter = new FileWriter(destFile);
			String linha;
			while(bReader.ready()) {
			linha = bReader.readLine().replaceAll("[><]", ";");
			fWriter.write(linha + "\n");   
			}
			fWriter.close();
			bReader.close();
		}
		catch(Exception e) {
			System.err.println("Erro ao gravar...");
		}
	}
	
	public Main() {}
	
	public static void main(String args[]) {
		destFile = new File("arq_destino.txt");
		origFile = new File("arq_origem.txt");
		Main myMain = new Main();
		myMain.copyModifiedFile();
	}
}

E testei com este arquivo que enviei anexado… O arquivo de entrada eu escrevi qualquer besteira la e coloquei uns caracteres "< "e "> "
aparentemente a ideia funciona muito bem :slight_smile: