Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Java:Lettura di un file...AIUTO!!!

    Ciao ragazzi!!!
    Mi sn iscritto da poco al forum e già ho bisogno di voi per un aiuto...
    Sto cominciando a programmare in Java, sono arrivato alla scrittura dei dati
    su file e sul mio libro "IL LINGUAGGIO JAVA" c'è scritto che per aggiungere dati in coda a quelli preesistenti, quindi per aprire il file in append basta aggiungere "true" come secondo parametro dell'oggetto FileOutputStream.

    FileOutputStream f=new FileOutputStream("nomeFile.dat",true);


    Quando però vado a leggere il file con il metodo readObject() questo mi fa leggere solo il primo oggetto registrato sul file o cmq non quelli scritti con l'apertura in append!!!!!!
    Non riesco a trovare la soluzione da nessuna parte e cosi mi sono bloccato probabilmente per la mia ancora troppo scarsa conoscenza del linguaggio.....
    Qui sotto vi scrivo il listato del programma nel caso non mi fossi spiegato bene.....
    confido ke mi potrete dare una mano...qualsiasi suggerimento è ben accetto e vi ringrazio in anticipo per l'aiuto....



    Libro libro;

    try{
    FileOutputStream f=new FileOutputStream("libro.dat",true);
    ObjectOutputStream fOUT=new ObjectOutputStream(f);
    fOUT.writeObject(libro);
    fOUT.flush();
    f.close();
    }
    catch(Exception e){
    System.out.println("Errore nella scrittura dei dati su file.");
    }


    Libro l;

    try{
    FileInputStream f=new FileInputStream("libro.dat");
    ObjectInputStream fIN=new ObjectInputStream(f);
    /*Ciclo infinito per leggere i dati*/
    while(true){
    try{
    l=(Libro) fIN.readObject();
    /* stampa degli attributi dell'oggetto L */
    System.out.println("Titolo: " + l.titolo);
    System.out.println("Autore: " + l.titolo);
    .................................................. ...

    }
    catch(EOFException e){
    /*interrompe il ciclo*/
    break;
    }
    }
    f.close();
    }
    catch(Exception e){
    System.out.println("Errore nella lettura del file." +e.getMessage());
    }

    Con queste istruzioni il programma mi da un errore, leggendo solo il primo oggetto
    scritto su file.
    Se invece senza aprire il file in append scrivo tre oggetti di tipo Libro insieme:
    fOUT.writeObject(libro1);
    fOUT.writeObject(libro2);
    fOUT.writeObject(libro3);
    fOUT.flush();
    allora mi legge tutti e tre gli oggetti.......Come mai?E' sbagliato il mio modo di scrivere su file in append o di leggere gli oggetti scritti in questo modo?Aiutatemi per favore....Grazie.

    PS:se avete un buon libro sul Java non troppo complesso da consigliarmi vi sarò grato se me ne lasciate il nome.

    Ciao

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326

    Moderazione

    Non utilizzare epiteti nei titoli, come richiesto dal regolamento che ti invito a leggere.

    Correggo io.


    PS: utilizza i tag [*CODE] e [*/CODE] (senza l'asterisco rosso) per postare il codice, così risulta più leggibile.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Vorrei apportare le modifiche di cui mi hai scritto ma quando clicco su modifica mi compare una schermata con un avviso dal forum che mi dice che
    "l'amministratore ha specificato che puoi editare messaggi solo per 60 minuti dopo aver postato. Questo periodo di tempo è terminato, quindi devi contattare l'amministratore per poter modificare il tuo messaggio. "

    Non sono molto pratico di questo forum....cosa devo fare?La mia discussione va bene cosi o per farmi rispondere da qualcuno devo fare modifiche?
    grazie ciao

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.