View Full Version : Come cancellare una riga da un file accedendo con RandomAccessFile in java...
Ciao a tutti!
Io sto realizzando un progetto scolastico in java e per realizzarlo ho avuto la necessità di salvare delle informazioni in un file di testo, il problema è come posso fare per cancellare una riga da questo file senza lasciare una riga vuota in mezzo al file?
Mi chiedevo se c'era qualche carattere di delete (tipo il \n che manda a capo riga)...
Spero che qualcuno di voi possa essermi d'aiuto perchè nn so + dove sbattere la testa... :muro:
Grazie per l'attenzione!
Ti leggi il file come uno stream (ottieni una stringa)...poi lvori con i metodi indexOf e substring della classe String.
public String getBuffer() throws Exception{
try
{
// this.values = values;
FileReader file = new FileReader(pathFile);
char[] c = new char[(int)tuoFile.length()];
file.read(c);
String buffer = String.copyValueOf(c);
file.close();
return buffer;
}
catch(Exception ex)
{
System.err.println("Exception raised by <getBuffer>: "+ex);
throw ex;
}
}
Capito, ma per salvare il file con la riga eliminata e il testo "tirato su" (per occupare la riga eliminata) come devo fare?
fabio_tarantino
03-05-2004, 23:20
Ti leggi ogni riga del file sorgente e la scrivi in un file destinazione escludendo la riga in questione. Quando hai finito di leggere tutte le righe salvi il file di destinazione.
MA no, visto che ha lavorato su quella stringa, è meglio usarla!
public void writeFile(String buffer) throws Exception{
try
{
FileWriter file = new FileWriter(pathFile);
file.write(buffer);
file.flush();
file.close();
}
catch(Exception ex)
{
System.out.println("Exception raised by <writeFile>: "+ex);
throw ex;
}
}
Grazie per i consigli ragazzi cmq ho risolto riscrivendo il file senza la riga che dovevo eliminare e settando la "length" del file con "getFilePointer" (che al termine della scrittura punta all'ultimo carattere scritto) e in questo modo la parte di file vecchia che nn mi interessava viene troncata...
Come vi sembra come soluzione? L'ho provata e sembra funzionare alla perfezione!
Grazie ancora e ciaoooo! :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.