In generale (non centra tanto Java), nei file non è possibile "inserire" o "rimuovere" materialmente bytes in mezzo (o all'inizio) al file.
Sì, è necessario riscrivere il file per intero. Poi se intendi leggerlo prima tutto, fare le dovute modifiche in memoria e poi riscrivere sullo stesso file .... oppure leggere e man mano scrivere su un nuovo file, queste sono scelte implementative che dipendono anche da cosa/quanto devi aggiungere e/o modificare.
Nel framework standard di Java SE non ci sono metodi singoli e appositi per "copiare" file né per leggere l'intero contenuto di un file. Ci vuole un breve codice che usa come minimo le varie classi di I/O.
Se puoi/vuoi usare librerie esterne c'è la ben nota Apache Commons IO che ha molte funzionalità di "utilità" per i file e il I/O in generale.



Rispondi quotando