J'essaie de lire un fichier sur ma carte SD et d'ajouter des informations supplémentaires (très petites, comme 20 octets) et d'écrire à nouveau les informations sur ma carte SD. J'utilise FileInputStream et FileOutputStream pour lire et écrire les données. Cependant, il prend beaucoup de temps pour terminer cette opération. Par exemple, lire et écrire un fichier de 100 Mo prend environ 30 secondes.La gestion des fichiers est très lente
File file = new File(globalSelectFile);
byte[] b = new byte[20971520]; /Around 20MB
FileInputStream fin = new FileInputStream(file);
FileOutputStream fout = new FileOutputStream(new File(directory + "/"
+ actualFileName));
Existe-t-il un moyen d'améliorer les performances?
où sont écrits ces 20 octets dans le fichier: début du fichier, fin du fichier, quelque part au milieu? – Orlymee
Je suis surpris que votre application n'a pas planté. Ce 'byte [] b = new byte [20971520];' allocation est trop grande pour la plupart des téléphones où la mémoire disponible est seulement de 16 Mo. Pourquoi avez-vous besoin d'un tel tampon? – dmon
@dmon 20mb n'est rien pour même le G1, le premier téléphone Android qui avait 192 Mo de RAM. En 2012, la plupart ont au moins un concert, beaucoup ont 2. – 8bitwide