Duvida em ler e gravar arquivos .txt!

8 respostas
thiagotbo

Gente tô com a seguinte dúvida: Ja aprendi o báisco em gravar e ler arquivos, mas queria saber como gravar em um arquivo sem sobrescrever o que ja se tem nele.

Tipo, crio uma lista para guardar os clientes de uma empresa, aí sempre que eu fecho o arquivo e depois vou adicionar mais um cliente ele sobrepõe o cliente ja existente, como posso tratar isso ?

8 Respostas

rolemberg

abra o arquivo para leitura e escrita, leia a ultima posicao e grave apartir da ultima posicao.

publique seu codigo para nos vermos o que vc fez tbem

tks

Foxlol

File arquivo = new File(“nome do arquivo.extensao”,true);

esse True eh de append … ou seja o conteudo naum serah sobrescrito e o q for acrescentado serah acrescentado ao final do arquivo.

thiagotbo

Assim, não to com o código agora, mas fiz esse aki mais simples que tah exemplificando o que fiz no outro:

import java.io.*;

 public class copiaTBO
 {

	public static void main(String[] args) throws Exception
	{

		FileWriter writer = null;
		try
		{
			writer = new FileWriter("arquivos\copiaTBO.txt");
			PrintWriter saida = new PrintWriter(writer,true);
        
	        String linha;
			FileReader ler = new FileReader("arquivos\tbo.txt");
			BufferedReader leitor = new BufferedReader(ler);

			PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("saida.txt")));

		    while((linha = leitor.readLine())!= null)
			{
				saida.println(linha);
				System.out.println(linha);
	        }
			
			leitor.close();
			ler.close();

			saida.close();
			writer.close();
		}

		catch (IOException ex)
		{ }
	}
     
 }

Esse código copia um arquivo para outro, tenho o arquivo "tbo.txt", e copio ele para o arquivo "copiaTBO.txt", a cópia da certo, mas sempre sobrescreve o outro, eu queria que funcionasse da seguinte forma: copiaria a primeira vez, aí eles ficam identicos, quando eu executasse o código novamente o arquivo "copiaTBO.txt" ficaria com o conteúdo duplicado, e assim por diante... Como eu deveria fazer ?

thiagotbo

Aê galera… to tentando e naum to conseguindo… alguém consegue me ajudar aí ? ? ?

furutani

Eu não sei se nessas classes que vc usa tem o recurso de append.
Mas o FileOutputStream tem fazer a troca por essa classe ao inves de PrintWriter

LPJava

cara aonde ta tua class File? é ela que cria os arquivo e nao FileWriter ou PrinterWrinter(essa aqui so no java 5, que ela recebe como arg um file).

File f = new File("arq.txt");
try{
PrintWriter pw = new PrintWriter(f); // cria o arquivo

}catch(Exception e){}
airton.asg

Cara no seu código coloka soh mais um TRUE… assim…

writer = new FileWriter("arquivos\copiaTBO.txt", true);// True Aki
PrintWriter saida = new PrintWriter(writer,true);

Tenta ai

airton.asg
FileWriter writer = new FileWriter(txtDiretorio.getText(), true);
PrintWriter arquivoSalvar = new PrintWriter(writer, true);
			
arquivoSalvar.append("Texto a ser inserido na ultima linha");
arquivoSalvar.append(System.getProperty("line.separator"));
arquivoSalvar.flush();
arquivoSalvar.close();
writer.close();

Veja ai… isso eh pra funfar…

Abraços

Criado 25 de março de 2007
Ultima resposta 27 de mar. de 2007
Respostas 8
Participantes 6