Ler arquivo e alterar texto

4 respostas
Mavericks

Galera,

Preciso ler um arquivo e alterar uma palavra dentro dele.
Assim, tenho um diretório c:\arquivo e subdiretórios, tenho que ler todos os arquivos .java e achar a palavra javaXX dentro de cada arquivo e alterá-la para java01, java02…
Começei a escrever um arquivo que lê um .txt, até ai legal, mas ñ consigo alterar o texto nesse .txt, alguém pode dar um help.

Segue o meu código (básicão…rs)

import java.io.*;
public class FileManager {
public static void main(String[] args) throws Exception {
       FileReader ler = new FileReader("C:\arquivo\teste.txt");
       BufferedReader leitor = new BufferedReader(ler);
       String linha;
       String linhaReescrita;
       while((linha = leitor.readLine())!= null) {
           System.out.println(linha);
           linhaReescrita = linha.replaceAll(linha, "Novo texto");
           System.out.println("\n" + linhaReescrita);
        }
    }

}

4 Respostas

facholi

Olá Mavericks, blza…

Veja bem velho, vc está usando reader, para ler o arquivo. Procure agora uma forma de vc escrever no arquivo.

abraço

Mavericks

Preciso criar uma instância de FileWriter para saber onde devo gravar o resultado e uma instância de BufferedWriter para saber o que gravar.
Mas como eu gravo?

FileWriter lido = new FileWriter("C:\arquivo\teste2.txt");
           BufferedWriter escritor = new BufferedWriter(lido);
           linhaReescrita = linha.replace('t', 'G');

Falta um método pra gravar isso no arquivo.

É o método writer, mas o que passo nele?

marcosvidolin

Veja se o exemplo te ajuda:

import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;

class Guj {
	
public static void main(String[] args) throws IOException {
	
		OutputStream bytes = new FileOutputStream("saida.txt", true); // passado "true" para gravar no mesmo arquivo
		OutputStreamWriter chars = new OutputStreamWriter(bytes);
		BufferedWriter strings = new BufferedWriter(chars);

		strings.write("Guj");

		strings.close();
	}
}
jefcunha
String arquivo = "/mnt/sdcard/Pedidos_de_12-10-2011.txt";
			String texto = "texto que vai no arquivo";
			FileOutputStream buffer = null;  
		
			buffer = new FileOutputStream(arquivo); 
			
			buffer.write(texto.getBytes());  
			
			buffer.close();

:shock: :D

Criado 2 de dezembro de 2008
Ultima resposta 12 de out. de 2011
Respostas 4
Participantes 4