Ma in quel caso il numero dei libro come lo ricavo?
Ma in quel caso il numero dei libro come lo ricavo?
Dunque allora senza usare il metodo, che magari può risultarti più noioso perchè devi modificare parecchio codice, fai cosi, il tuo ciclo di lettura:
codice:for(int i=0;i<???;i++){ libro[i]=(Book)is.readObject();}
Dunque allora senza usare il metodo, che magari può risultarti più noioso perchè devi modificare parecchio codice, fai cosi, il tuo ciclo di lettura:
oppure:codice:for(int i=0;is.available() > 0;i++){ libri[i]=is.readObject(); }
questo modo, ma con un array sarebbe tutto più semplice
prova cosi,spero funzionicodice:int i = 0; try{ while(true){ libri[i]= (Book)in.readObject(); i++; } }catch(EOFException ex){ }![]()
Ultima modifica di andrea9671; 19-01-2015 a 22:33
Allora....in questo modo, funziona solo quando nella stampa (che ho aggiunto x vedere se inseriva i libri in modo corretto) invece che la variabile dim uso una costante numerica che corrisponde all' esatto numero dei libri...
Mi segnale all' esecuzione un java.lang.NullPointerException all' istruzione System.out.println(libro[i].Titolo);codice:int dim=0; ObjectInputStream is = null; try{ f_in = new FileInputStream(txt_file.getText()); is = new ObjectInputStream(f_in); int i = 0; try{ while(true){ libro[i]= (Book)is.readObject(); dim++; } }catch(EOFException ex2){ } is.close(); } catch(IOException ex){ JOptionPane.showMessageDialog(f_main, "Errore caricamento file."); } catch (ClassNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } for(int i=0;i<dim;i++){ System.out.println(libro[i].Titolo); System.out.println(libro[i].Autore); System.out.println(libro[i].Percorso); System.out.println(libro[i].Anno); System.out.println(libro[i].numpag); System.out.println(libro[i].formato); System.out.println("-------------"); }
Dunque prova cosi, nel ciclo while(true) fai i++ e non dim++. Poi nel ciclo for di stampa la condizione è questa for(int i=0; i<libri.length;i++)
E comunque mi stampa solamente il 4 libro:
titolo4
autore4
percorso4
anno4
numpag4
-------------
Scusate se mi intrometto ma non era meglio salvare sul file direttamente l'array dei libri ? e non salvare singolarmente ogni libro ?
Appunto è quello che avevo suggerito ahahahahahah
Ok, me li stampa, ma quando provo a passare questo array ad un'altra classe ricompare il solito java.lang.NullPointerException
codice:Sò che forse il setBook è inutile, però senza non mi salva i libri ottenuti dal carica nel mio array istanziato ad inizio classe...codice:int dim_book; Book[] libro = new Book[50]; int dim=0; ObjectInputStream is = null; try{ f_in = new FileInputStream(txt_file.getText()); is = new ObjectInputStream(f_in); int i = 0; try{ while(true){ libro[i]= (Book)is.readObject(); i++; dim++; } }catch(EOFException ex2){ } is.close(); } catch(IOException ex){ JOptionPane.showMessageDialog(f_main, "Errore caricamento file."); } catch (ClassNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } System.out.println(dim); for(int i=0;i<dim;i++){ System.out.println(libro[i].Titolo); System.out.println(libro[i].Autore); System.out.println(libro[i].Percorso); System.out.println(libro[i].Anno); System.out.println(libro[i].numpag); System.out.println(libro[i].formato); System.out.println("-------------"); } setBook(libro,libro.length); gestione_Panel p_gestione = new gestione_Panel(this,f_options,libro,dim_book); public void setBook(Book []b,int book_idx){ libro = b; dim_book = book_idx; }
Ultima modifica di marco1462; 20-01-2015 a 12:33
qualcuno ha idee??![]()