Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    leggere più oggetti con readObject

    Ciao a tutti, ho un problema con la lettura da un file di oggetti che scrivo tramite writeObject, ma che quando vado a leggere in un ciclo while con readObject non riesco a trovare la condizione per terminare la lettura dal file il codice molto semplice è il seguente:

    public static void main(String[] args) throws IOException, ClassNotFoundException {
    Contatti con = new Contatti();
    Contatti con1 = new Contatti();
    con.insert("nome","cg");
    con1.insert("nome1","cg1");

    File file = new File("salvataggi.txt");

    FileOutputStream outFile = new
    FileOutputStream(file);
    ObjectOutputStream outStream = new
    ObjectOutputStream(outFile);
    outStream.writeObject(con);
    outStream.writeObject(con1);
    outStream.close();
    outFile.close();

    FileInputStream inFile = new
    FileInputStream(file);
    ObjectInputStream inStream = new
    ObjectInputStream(inFile);
    Contatti c;
    while ( (c=(Contatti)inStream.readObject()) != -1 )
    System.out.println(c.toString());

    inStream.close();
    inFile.close();
    }

    :dhò:

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,464

    Moderazione

    Benvenuto nel forum di Programmazione.

    Dato che sei nuovo, ti segnalo il Regolamento che contiene tutte le regole da seguire per una convivenza pacifica all'interno del forum, inclusi trucchi e suggerimenti per sfruttarlo al meglio...da leggere assolutamente!

    In particolare, devi indicare il linguaggio di riferimento anche nel titolo della discussione.

    Fammelo sapere così lo specifico io.

    Detto questo...ciao e buon forum!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    il linguaggio è java

  4. #4
    Utente di HTML.it L'avatar di Ed_Bunker
    Registrato dal
    Jul 2003
    Messaggi
    1,119
    Hai provato con:
    codice:
     while ( (c=(Contatti)inStream.readObject()) != null  )
    ?
    Mica stai programmando in c...
    Quando mai potrai ricevere -1 da un metodo che restituisce Object ?

  5. #5
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    mi sembra che un readObject in un file che è stato letto tutto generi un EOFException

  6. #6
    Ho provato con null, ma in esecuzione dopo aver visualizzato il contenuto del file mi da i seguenti errori:
    Exception in thread "main" java.io.EOFException
    at java.io.ObjectInputStream$BlockDataInputStream.pee kByte(ObjectInputStream.java:2502)
    at java.io.ObjectInputStream.readObject0(ObjectInputS tream.java:1267)
    at java.io.ObjectInputStream.readObject(ObjectInputSt ream.java:339)
    at agendaelettronica.OperationFile.main(OperationFile .java:43)

    siccome è da poco che programmo in Java credo che bisogna intercettare l'errore ma come si fà?
    CIAO grazie

  7. #7
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    codice:
    try {
      while (true) {
        c = (Contatti)inStream.readObject();
        System.out.println(c.toString());
      }
    } catch (EOFException eofex) {
      eofex.printStackTRace();
    } finally {
      inStream.close();
      inFile.close();
    }

  8. #8
    GRAZIE!!!

  9. #9
    A titolo di curiosità personale ma il while serve?

    Mi spiego meglio io non inserirei mai oggetti (dello stesso tipo) in sequenza su un file ma posterei un oggetto che contiene la lista di tutto.

    Immagino in questo caso il salvataggio di un Vector.

    Ciao
    TonyTalk
    Gioca a The Empire Multiplayer online game...ispirato a Risiko ma con scenari ed opzioni rivoluzionarie
    http://www.multiplayergames.it
    http://utenti.lycos.it/the_empire

  10. #10
    Gli oggetti che inserisco nel file sono contenuti in una LinkedList, dovrei qundi inserire questa struttura nel file?

    GRAZIE per l'interessamento!!!!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.