Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 22

Hybrid View

  1. #1
    Ma in quel caso il numero dei libro come lo ricavo?

  2. #2
    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();}

  3. #3
    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;is.available() > 0;i++){
          libri[i]=is.readObject();
    }
    oppure:
    questo modo, ma con un array sarebbe tutto più semplice
    codice:
    int i = 0;
      try{	while(true){
    	 libri[i]= (Book)in.readObject();
             i++;
    	}
    }catch(EOFException ex){
    }
    prova cosi,spero funzioni
    Ultima modifica di andrea9671; 19-01-2015 a 22:33

  4. #4
    Quote Originariamente inviata da andrea9671 Visualizza il messaggio
    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;is.available() > 0;i++){
          libri[i]=is.readObject();
    }
    oppure:
    questo modo, ma con un array sarebbe tutto più semplice
    codice:
    int i = 0;
      try{    while(true){
         libri[i]= (Book)in.readObject();
             i++;
        }
    }catch(EOFException ex){
    }
    prova cosi,spero funzioni

    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...

    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("-------------");
    								}
    Mi segnale all' esecuzione un java.lang.NullPointerException all' istruzione System.out.println(libro[i].Titolo);

  5. #5
    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++)

  6. #6
    E comunque mi stampa solamente il 4 libro:


    titolo4
    autore4
    percorso4
    anno4
    numpag4
    pdf
    -------------

  7. #7
    Scusate se mi intrometto ma non era meglio salvare sul file direttamente l'array dei libri ? e non salvare singolarmente ogni libro ?

  8. #8
    Appunto è quello che avevo suggerito ahahahahahah

  9. #9
    Ok, me li stampa, ma quando provo a passare questo array ad un'altra classe ricompare il solito java.lang.NullPointerException

    codice:
    
    
    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;
    		
    	}
    Sò che forse il setBook è inutile, però senza non mi salva i libri ottenuti dal carica nel mio array istanziato ad inizio classe...
    Ultima modifica di marco1462; 20-01-2015 a 12:33

  10. #10
    qualcuno ha idee??

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.