Problemas com replaceall em arquivo de texto

2 respostas
S

Iai gente, tudo bom?? então o meu problema é o seguinte, estava fazendo a classe que faz a leitura de um arquivo de texto já existente e então faz um replaceall que troca as letras “l” por “u” e quando tem letra “r” ele coloca vazio. Quando compilava esse código ele acabava apagando todas as letras do arquivo de texto e não gerava não escrevia nada no arquivo. Se vcs puderem me ajudar eu ficaria agradecido, desde já obrigado!!

public class ExercicioII {

public static void main(String[] args) {

BufferedReader bf = new BufferedReader(new InputStreamReader (System.in));

BufferedWriter bw;

String linha;

try {

System.out.println("Entre com o nome do arquivo a ser lido: ");

String arq = bf.readLine();

bw  = new BufferedWriter(new FileWriter(arq));

bf = new BufferedReader(new FileReader(arq));

while((linha = bf.readLine()) != null){

String linha2 = linha.replaceAll(r, “”);

linha = linha.replaceAll(l, u);

System.out.println(linha2);

bw.write(linha);

}
bw.close();
		
		
		
	} catch (IOException io) {
		io.printStackTrace();
	}



}

}

2 Respostas

g4j

Vc está usando o mesmo arquivo para ler e escrever…

Experimente criar um outro arquivo e ir escrevendo nele quando der o replaceAll.

S

Acabei de perceber aki hehe q eu tava armazenando em uma variável um replace all e o outro replace não… agora to colocando em outro arquivo, mas como aki num tem como compilar fica difícil de ver se funcionou + pra mim a logica tá certa

public class ExercicioII {

public static void main(String[] args) {
	BufferedReader bf = new BufferedReader(new InputStreamReader (System.in));
	BufferedWriter bw;
	 String linha;
	try {
		System.out.println("Entre com o nome do arquivo a ser lido: ");
		String arq = bf.readLine();
		System.out.println("Entre com o nome do arquivo de saida: ");
		String arq2 = bf.readLine();
		bw  = new BufferedWriter(new FileWriter(arq));
		bf = new BufferedReader(new FileReader(arq2));
		while((linha = bf.readLine()) != null){
		linha = linha.replaceAll("r", "");
		linha = linha.replaceAll("l", "u");
		bw.write(linha);
		}    
		bw.close();	
	} catch (IOException io) {
		io.printStackTrace();
	}
}

}

Criado 11 de setembro de 2008
Ultima resposta 11 de set. de 2008
Respostas 2
Participantes 2