PDA

View Full Version : [JAVA]Scrivere in fondo a un file


battle84
09-01-2008, 16:49
Ciao a tutti, io ho un file rappresentato con

out=new PrintWriter(
new BufferedWriter(
(new FileWriter(posFileOut))));

su questo file scrivo pių volte delle righe con out.println("STRINGA"), il mio problema č questo: ogni riga che scrivo deve terminare con FALSE tranne l'ultima che deve terminare con TRUE, non posso sapere quale riga č l'ultima tramite fine di cicli for o cose simili, volevo sapere se esiste un modo per dire a Java "vai in fondo al file, arretra di 5 caratteri e scrivi TRUE", č possibile o sto farneticando?

lovaz
09-01-2008, 17:09
Con RandomAccessFile, esempio d'uso:

http://digilander.libero.it/computinglab/javabase/07.html#random

vedi il javadoc per maggiori dettagli

fbcyborg
09-01-2008, 17:09
Ciao,

per scrivere in fondo a un file devi utilizzare (almeno io faccio cosė) la classe
RandomAccessFile che ti mette a disposizione un metodo di nome length() e uno di nome seek().

In pratica, tu apri il file:
RandomAccessFile logFile = new RandomAccessFile("log.txt","rw");

Prendi il filedescriptor e lo passi allo stream:
FileOutputStream fos = new FileOutputStream(logFile.getFD());

Apri lo stream su file:
PrintStream log = new PrintStream(fos);

Ti posizioni in fondo al file e ci scrivi quello che vuoi:
logFile.seek(logFile.length());
log.println("Quello che vuoi");


Ciao!

Don[ITA]
09-01-2008, 19:30
Se devi fare semplicemente una append su un file di testo basta che istanzi un PrintWriter in questo modo:
PrintWriter outputStream = new PrintWriter(new FileOutputStream("textfile.txt", true));

Ciauz