Comment puis-je enregistrer des structures de données dans android?
Je veux stocker des données en provenance des structures comme ceci:
class Project {
ChildA a;
ChildB b;
}
class ChildA {
ChildC c;
...
}
...
J'ai créé données comme:
Projet x = new Project();
x.a = new ChildA();
x.a.c = new ChildC();
... et je veux l'enregistrer dans un fichier externe sur la carte sd de mon appareil ainsi que d'autres applications puissent le lire (et les utilisateurs peuvent ouvrir/copier).
J'ai pensé que je devrais utiliser un DOM parser parce que mes structures de données ne sont pas très grandes, mais je trouve pas de tutoriels ou quelque chose comme ça. Est-il un meilleur moyen de stocker cette information?
Si non, existe-il des instructions sur la façon d'utiliser les analyseurs dans android?
OriginalL'auteur Simon Heinen | 2009-09-24
Vous devez vous connecter pour publier un commentaire.
Si vous voulez que vos données soient accessibles à d'autres applications Android, alors il est recommandé d'écrire un Fournisseur De Contenu. Si, d'autre part, vous voulez que vos données soient utilisées dans les applications android, vous aurez besoin de les "exporter". Ce que vous avez à code sur votre propre.
Je peux penser à trois options: la
Malheureusement, Android ne comprend pas tout ce qui est nécessaire pour créer facilement XML
les fichiers. Plus particulièrement, le
javax.xml.transform
n'est pas disponible, et l'ajout de la plateformeles classes n'est pas recommandé. Cela signifie que vous aurez à écrire sur votre propre
"transformer" classe
JSON est bien pris en charge par l'API Android. Voir ici et ici
Aussi longtemps que vos objets de mettre en œuvre l'interface "Serializable", ils peuvent facilement être
écrites dans les fichiers. Je n'ai jamais eu besoin de le faire moi-même, mais il devrait être
simple, et les exemples doivent être disponibles sur le net. (À titre d'exemple, Google est venu
avec ce mini-tutoriel)
Lorsque vous stockez vos fichiers en privé, alors envisager l'utilisation de openFileInput et openFileOutput. Si vous souhaitez stocker explicitement sur la Carte SD, vous devez utiliser getExternalStorageDirectory() pour récupérer le dossier racine.
Ma recommandation personnelle serait d'utiliser des fichiers JSON. C'est un format simple qui fonctionne bien pour la plupart des cas, et il est largement disponible. En dehors de cela de/de sérialisation est très simple.
OriginalL'auteur exhuma