Salve ragazzi ho un problema con i file. Vorrei sostituire una determinata linea di un file di testo con una stringa ho provato con RandomAccessFile ma va bene sono per i byte. esiste un modo per scrivere in una determinata linea una stringa?![]()
Salve ragazzi ho un problema con i file. Vorrei sostituire una determinata linea di un file di testo con una stringa ho provato con RandomAccessFile ma va bene sono per i byte. esiste un modo per scrivere in una determinata linea una stringa?![]()
Non è tanto/solo questo il problema. Ma una questione tecnica/concettuale che vale molto in generale: all'interno di un file non si possono inserire/eliminare fisicamente i byte. Insomma il contenuto non si può spostare avanti/indietro da un certo punto. Puoi solo: a) appendere (aggiungere) al fondo o b) sovrascrivere byte pre-esistenti. E questo ovviamente non è coerente con l'inserimento (o peggio rimozione) generalizzato di una riga in mezzo!
Sì esiste ma dipende da cosa devi "sapere" per determinare dove inserire la riga. Se sai a priori che la riga va aggiunta ad un ben preciso numero di riga, allora puoi leggere riga per riga tenendo un contatore. Man mano che leggi le righe le scrivi su un nuovo file temporaneo. Raggiunto il numero di riga voluto, inserisci anche la riga nuova, proseguendo poi con le altre lette.
Altrimenti se la determinazione del punto esatto dipende da altri fattori o richiede la conoscenza di tutte le righe, allora devi prima leggere tutto il file e tenere tutte le righe in memoria (es. in una lista), fare le modifiche in memoria e poi riscrivere l'intero file.
Ultima modifica di andbin; 09-06-2017 a 14:49
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
grazie![]()