Bonjour,
J'utilise ceci pour sauvegarder un objet:
je peux facilement le relire, mais cet objet complexe qui contient des listes d'objets, des HashMap... est incorrectement lu (des champs sont null) quand je relis le fichier après une mise à jour de l'APK, même quand les modifications ne concernent pas l'objet sérialisé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public void saveToStream(Context context) { try { FileOutputStream stream = context.openFileOutput(FILENAME, 0); ObjectOutputStream out = new ObjectOutputStream(stream); out.writeObject(this); out.close(); stream.close(); } catch (Exception e) { Log.d("DBG", "Erreur saveToSTream: " + e.getMessage()); } }
et ça c'est très embêtant !
est-ce un phénomène connu, un pb dans mon code, existe-il une autre méthode pour sauvegarder facilement des objets dans un format persistant malgré l'update de l'APK ?
les objets sont de ce type
NB: le volume de données est suffisamment réduit pour que je ne veuille pas passer par une BDD, je veux juste que ce soit persistant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package truc; public class LesChoses { public static class Chose1 implements Serializable { int id; String name; } public static class Chose2 implements Serializable { int id; String name; Chose1 chose1; } public static class Choses implements Serializable { ArrayList<Chose1> choses1 = new ArrayList<Chose1>(); HashMap<Integer, Chose2> choses2 = new HashMap<Integer, Chose2>(); public void saveToStream(...); } private static Choses mChoses; public static Choses getChose() { ...// singleton } }
Merci
Partager