2011-05-31 4 views
1

J'essaie de trouver le meilleur moyen de stocker des fichiers XML sur Internet, afin que je puisse les analyser à une date ultérieure. Je n'ai aucun problème avec le téléchargement d'un fichier xml, et de le stocker dans leStocker et analyser XML à partir d'Internet

/data/data/package_name/fichiers

dossier

. Cependant, je ne suis pas sûr de savoir comment lire ce fichier après qu'il y a été enregistré, et de passer ce fichier lu à une instance d'un analyseur SAX. De plus, j'ai remarqué qu'il est assez lent de lire le fichier depuis le téléphone, ce qui est préoccupant. J'ai lu le fichier XML de stockage dans le dossier res/xml est beaucoup plus rapide - mais je ne suis pas sûr s'il est possible de sauvegarder un fichier d'Internet dans ce dossier lors de l'exécution?

Toute aide serait appréciée :)

Cheeers

Répondre

2

Stockez-le dans le répertoire cache.

getCacheDir(); 

afin que vous puissiez dire filename = getCacheDir() + file123.xml;

+0

est-ce pas le répertoire de cache uniquement pour les fichiers temporaires si? Que faire si je veux conserver le fichier jusqu'à ce que l'utilisateur se «rafraîchisse»? – jsw

+0

Il est supprimé uniquement lorsqu'il n'y a pas assez d'espace. Combien de temps voulez-vous conserver les fichiers? – Hades

2

Vous ne pouvez pas écrire dans le dossier res du tout. Ces ressources sont compilées dans votre application au moment de la construction et sont en lecture seule. En ce qui concerne la lecture du fichier, vous devriez simplement pouvoir créer un flux d'entrée pour celui-ci de la manière java standard et analyser les octets en utilisant votre analyseur syntaxique.

Cette section du guide explique comment accéder aux systèmes de fichiers internes et externes et comment obtenir des flux d'entrée/sortie. http://developer.android.com/guide/topics/data/data-storage.html#filesInternal

Questions connexes