Je dois faire une application android (une seule activité) qui récupère les données de 10 capteurs situé dans le campus à l'aide de requete reseau.

Je dois fais une requete toutes les secondes et ça pendant une durée de temps indéterminé. donc ca peut etre 1h comme 10h.

mon appli récupère ces valeurs et les enregistres dans un fichier suivant le format :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
(ID_SENSOR, VALUE_SENSOR)
donc il y a un seul fichier pour chaque capteur

les données récupéré des capteurs sont des double.

pour la partie application et requete reseau pas de soucis.

mais là où je me pose des questions c'est pour enregistrer les données dans le fichier.

J'ai pensé à plusieurs solutions mais je ne sais pas laquelle choisir :

Au lancement de l'application ouvrir le fichier
Toutes les 1s à chaque fois que je recois une valeur d'un capteur je l'enregistre dans le fichier
Je ferme le fichier lorsque l'utilisateur souhaite quitter l'application

Avantages de cette solution : Si l'appli crash, l'utilisateur peut relancer l'application et relancer la prise de capture en gardant es valeurs calculé précédemment puisqu'elles ont été enregitrées.
Inconvénient de cette solution : Le fichier est toujours ouvert, et j'écris dedans toutes les secondes.

Autre solution :

Je stocke toutes les valeurs dans un tableau de double.
J'enregistre toutes ces valeurs dans le fichier lorsque l'utilisateur souhaite quitter l'application

Avantages de cette solution : On ne fais qu'un seul écriture dans le fichier.
Inconvénient de cette solution : Si l'appli crash, on perd les données et s'il y a beaucoup de valeur à retenir, ca risque de faire grossir le nombre d'espace mémoire que prend mon appli dans la ram (le tableau grossi).

Donc je ne sais pas trop laquel choisir...

Pouvez-vous m'éclaire svp ?