Autore Topic: Salva classe su file su SD Card  (Letto 714 volte)

Offline glacer

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S
  • Sistema operativo:
    MAC OS X 10.6
Salva classe su file su SD Card
« il: 17 Marzo 2012, 02:26:43 CET »
0
Salve ragazzi,

Sono nuovo nel campo android e sto facendo un progetto per l'università.

Sto creando un semplice diario in Android 2.3.3 su SDK.

Vi riporto le due classi che gestisco.

Codice (Java): [Seleziona]
public class Notes implements Serializable {
        /**
         *
         */

        private static final long serialVersionUID = -2447593355732137215L;
        static ArrayList<Note> notes;
        int seq;

Codice (Java): [Seleziona]
public class  Note  implements Serializable {
       
        /**
         *
         */

        private static final long serialVersionUID = -1854547380351880682L;
        Time data;
        Vector<String> tags;
        Editable txt;
        Editable Title;
        String img;
        int id;

Ora quello che voglio fare e' salvare l'oggetto Notes mediante questa funzione :
Codice (Java): [Seleziona]
public static void save(Notes notes){
                File NoteDirectory = new File("/sdcard/diary/");
                NoteDirectory.mkdirs();
                File outputFile = new File(NoteDirectory, "out.dat");
                try{
                      //use buffering
                        ObjectOutputStream oos =
                                        new ObjectOutputStream(
                                                new BufferedOutputStream(
                                                        new FileOutputStream("/sdcard/diary/out")));
                       
                        oos.writeObject(notes);
                        oos.flush();
                        oos.close();
                     
                    }  
                    catch(IOException ex){
                       
                    }

Non ottengo errori in compilazione, ma non mi salva l'oggetto che non posso richiamare in apertura del programma.

Come risolvo?

Grazie mille per il tempo dedicato.

/G

Zate

  • Visitatore
Re:Salva classe su file su SD Card
« Risposta #1 il: 17 Marzo 2012, 11:04:42 CET »
0
Prova ad usare:
Codice (Java): [Seleziona]
File NoteDirectory = new File(Environment.getExternalStorageDirectory() + "/diary");Environment | Android Developers()

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Salva classe su file su SD Card
« Risposta #2 il: 17 Marzo 2012, 11:26:16 CET »
0
Hai inserito nel manifest la permission relativa alla scrittura su memoria esterna?
Manifest.permission | Android Developers
Postate il LogCat LogCat LogCat LogCat LogCat

Offline glacer

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S
  • Sistema operativo:
    MAC OS X 10.6
Re:Salva classe su file su SD Card
« Risposta #3 il: 17 Marzo 2012, 11:33:21 CET »
0
Ho inserito il WRITE EXTERNAL STORAGE nei permessi.

Vi inserisco anche la funzione di lettura :
Codice (Java): [Seleziona]
 public static Notes read(){
                        Notes o = new Notes();
                         createDirIfNotExists("/sdcard/diary");
                         try{
                              //use buffering
                              InputStream file = new FileInputStream( "/sdcard/diary/out" );
                              InputStream buffer = new BufferedInputStream( file );
                              ObjectInput input = new ObjectInputStream ( buffer );
                              try{
                                //deserialize the List
                                o =  (Notes)input.readObject();
                               
                              }
                              finally{
                                input.close();
                              }
                            }
                            catch(ClassNotFoundException ex){
                               
                            }
                            catch(IOException ex){
                               
                            }
                        return o;
                       
                          }

Non ci dovrebbero essere problemi a salvare un oggetto in Stream, anche se ci sono variabile Static giusto?

Offline pivoide

  • Utente junior
  • **
  • Post: 133
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy tab 10.1
  • Play Store ID:
    codicerosso
  • Sistema operativo:
    Ubuntu 11.04
Re:Salva classe su file su SD Card
« Risposta #4 il: 17 Marzo 2012, 11:40:24 CET »
0
Probabilmente Editable non è serializzabile. Modifica la classe salvando le note come String
Odio l'inglese e per un informatico non è il massimo

Offline glacer

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S
  • Sistema operativo:
    MAC OS X 10.6
Re:Salva classe su file su SD Card
« Risposta #5 il: 17 Marzo 2012, 14:42:27 CET »
0
Perfetto ragazzi ho portato tutto in stringhe.