codice:
import java.io.*;

public class Book implements Serializable{ 
    
    //implementando serializable, possiamo scrivere l'intero oggetto su un file
    
    public String Titolo;
    public String Autore;
    public String Anno;
    //public String Percorso; non ho ben capito cosa serva percorso e formato per cui l'ho eliminato
    public String numpag;
    //public String formato;
    
    public Book(String Titolo, String Autore, String Anno, String numpag){
        this.Titolo = Titolo;
        this.Autore = Autore;
        this.Anno = Anno;
      //  this.Percorso = Percorso;
        this.numpag = numpag;
      //  this.formato=formato;
    }
    
    public static void main(String[] args){
        
        Book books[] = new Book[2]; //Creiamo un array di 2 libri ad esempio 
        Book book1 = new Book("Biancaneve","Non lo so", "1990","200");
        Book book2 = new Book("La principessa sul pisello","Non lo so", "1992","230");
        
        //inserisco i libri nel array
        
        books[0] = book1;
        books[1] = book2;
        try{
            //STREAM PER SCRIVERE OGGETTO SU FILE
            ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("path_file.bin"));
            //STREAM PER LEGGERE OGGETTO DA FILE
            ObjectInputStream in = new ObjectInputStream(new FileInputStream("path_file.bin"));
            
            //STAMPO I LIBRI PRIMA DI SCRIVERE E RILEGGERE (SOLO PER DIMOSTRARE CHE I LIBRI CHE RILEGGERO SONO UGUALI)
            System.out.println("Libri inziali");
            for(int i=0; i<books.length; i++){
                Book b = books[i];
                System.out.println(b.Titolo+ " "+b.Autore+" "+b.Anno+" "+b.numpag);
            }
            //Scrivo i libri SU FILE
            out.writeObject(books);
            
            //Leggo i libri DA FILE
            books = (Book[])in.readObject();
            
            //RISTAMPO I LIBRI CHE ERANO STATI SCRITTI SUL FILE
            
            System.out.println("Letti da file");
            for(int i=0; i<books.length; i++){
                Book b = books[i];
                System.out.println(b.Titolo+ " "+b.Autore+" "+b.Anno+" "+b.numpag);
            }
            
        }catch(FileNotFoundException ex){
            ex.printStackTrace();
        }catch(IOException ex){
            ex.printStackTrace();
        }catch(ClassNotFoundException ex){
            ex.printStackTrace();
        }
    }
}
ecco qua ti conviene usare la serializzazione risparmi tempo e fatica,secondo me