Gravar num ficheiro txt sem apagar o q ele contem
O problema é que sempre que eu quero gravar Strings num ficheiro txt ele grava-as mas apaga o que o ficheiro contem, e eu o que quero é acrescentar. Tou a utilizar o seguinte código:
public void GravaFicheiro (String lClientes,InetAddress ip){
String cliente=lClientes;
InetAddress ipnet=ip;
GregorianCalendar date=new GregorianCalendar();
File ficheiro = new File("ListaClientes.txt");
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(ficheiro));
if(ficheiro.canWrite()){
bw.write("-----------------------------------------------------------"+
"-----------------------------------------------------------"+
"-------------------------------");
bw.newLine();
bw.write("<Cliente>"+cliente+" <IP> "+ipnet+" </IP></Cliente><Date> "+
date.getTime()+" </Date>");
bw.flush();
bw.close();
}
}catch (IOException e){}
}
Também experimentei este outro código, neste sei gravar sem apagar mas nao sei acrescentar linhas, ou seja dar um return (\n).
public class Ler {
static String linhas,p;
static int c,t;
public static void main(String[] args) {
try{
File ficheiro = new File("ListaClientes.txt");
RandomAccessFile raf=new RandomAccessFile(ficheiro,"rw");
raf.seek(raf.length());
raf.writeChars("OOOOOOOOOOOOOOOIIIIIIIIII");
raf.writeChars("tuuuuuuuuuudddddddddddddooooooooo");
raf.close();
}catch (IOException e){}
}
}
Obrigado pelo vosso intersse,
P_rodrigues
Curtidas 0
Respostas
Rafael Afonso
09/04/2009
Paulo:
Ao invés de fazer:
Faça assim:
O segundo argumento indica que o arquivo pode ser apendado. Para mais detalhes dê uma olhada no [url=http://java.sun.com/j2se/1.4.2/docs/api/java/io/FileWriter.html]Javadoc de FileWriter[/url].
PS: Use as Tags CODE para colocar seu código. :!:
Grato,
BufferedWriter bw = new BufferedWriter(new FileWriter(ficheiro));
BufferedWriter bw = new BufferedWriter(new FileWriter(ficheiro, true));
GOSTEI 0
Niflheim
09/04/2009
kra... eu não entendo disso... mas pelo que eu vi vc cria um novo arquivo chamado listaClientes a cada vez que vai cadastrar um novo... seria isso?
oq acontece eh q qndo vc dah um new File("ListaClientes.txt") sendo que esse arquivo jah existe... ele vai ser obescrito, sendo substituido por um novo arquivo vazio...
vc teria que abrir o arquivo pra poder continuar escrevendo e não criar um novo...
soh q eu não sei qua eh a função q faz isso agora... :roll: em C seria fOpen();
GOSTEI 0
Niflheim
09/04/2009
[quote="rafael_afonso"]Paulo:
ahhhh.... ehhhh.... se o segundo argumento for true ele começa a escrever os bytes no final do arquivo certo?!
BufferedWriter bw = new BufferedWriter(new FileWriter(ficheiro, true));
GOSTEI 0
Rafael Afonso
09/04/2009
[quote="Pure_Death_Metal"][quote="rafael_afonso"]Paulo:
ahhhh.... ehhhh.... se o segundo argumento for true ele começa a escrever os bytes no final do arquivo certo?!BufferedWriter bw = new BufferedWriter(new FileWriter(ficheiro, true));
append - if true, then bytes will be written to the end of the file rather than the beginning
Grato,
GOSTEI 0
Rafael Afonso
09/04/2009
É isso mesmo... :!: Obrigado pela resposta.
GOSTEI 0
Rafael Afonso
09/04/2009
Excelente rafael_afonso.
Eu estava com a mesma dúvida e apenas o ",true" me ajudou!
Obrigado!
GOSTEI 0