Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Darrol
    Registrato dal
    Feb 2004
    Messaggi
    235

    [JAVA] Lettura/Scrittura di una matrice da file

    Come si potrebbe scrivere/leggere una matrice da un file di testo?

    So di essere un po generico ma supponiamo di avere una matrice e voler creare un file di testo per poi scrivercela.
    In un secondo momento volgio aprire il file di testo e memorizzarmi la matrice per poi modificarmela e così via.

    Denghù in anticipo
    "Lo sa che io ho perduto due figli"
    "Signora lei è una donna piuttosto distratta"

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    Se non sbaglio puoi addirittura salvare su file delle istanze di oggetti, che nel tuo caso potrebbe essere una classe matrice.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    http://java.sun.com/developer/techni...s/ALT/sockets/

    Qui trovi una guida generale con esempi sulla serializzazione degli oggetti. Questo è l'approccio generale e ti consente di salvare su file una matrice di oggetti, ad esempio.

    Se invece cercavi qualcosa tipo "ho una matrice di valori numerici/letterali e voglio salvarla così com'è", puoi sempre scrivere una classe che legga un File riga per riga e per ogni riga usare uno StringTokenizer per recuperare i singoli valori. Stesso processo in scrittura, in cui, su ogni riga andarai a scrivere i valori della corrispondente riga della matrice, separati da un opportuno "token".
    Ciao
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    143
    Anche io mi ritrovo con lo stesso problema di Darrol, conosco la serializzazione ma non riesco ad implementarla correttamente:
    mettiamo che io abbia un Integer a cui assegno un valore e voglio sia mantenuto:

    ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("salva"));
    ObjectInputStream in = new ObjectInputStream (new FileInputStream ("salva"));;
    Integer r;
    int scelta = 0;
    while(scelta != 1 && scelta !=2)
    {
    System.out.println("Scegli 1 per creare, 2 per deserializzare:");
    scelta = SavitchIn.readInt();
    }
    switch(scelta)
    {
    case 1:
    System.out.println("Inserisci valore:");
    int valore = SavitchIn.readInt();
    r = new Integer(valore);
    out.writeObject(r);

    case 2:
    if(in.read() > 0)
    {
    r = (Integer)in.readObject();
    System.out.println("Il valore e': " + r.intValue());
    }
    }

    Il problema credo stia tutto nel case2 dello switch:
    il fatto che un utente al primo utilizzo mi può scegliere il case2 mi obbliga a mettere la condizione che se il file è vuoto non posso leggerci, anche se all'inizio credevo che readObject() restituisse null e potevo usare questa come condizione, ma non è così!
    il metodo read() restituisce un int per cui se non c'è nulla nel file non entro nell'if.
    Il fatto è che se faccio case1 e inserisco un valore nell'oggetto r, al secondo giro il file pare sia sempre vuoto perchè se faccio in modo da andare in case2 non entra nell'if, come se out e in puntassero a 2 file "salva" differenti.
    Qualcuno mi sa dire cosa sto sbagliando?

    Grazie

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