JbWGY Posté(e) 31 mars 2011 Posté(e) 31 mars 2011 Bonsoir à tous Je suis à la recherche d'une méthode pour parser un CSV qui pèse un peu moins d'1mo (40000 lignes) J'utilise un simple bufferedreader pour parser, et il met environ 5 secondes sur mon Milestone 2 mais 20 secondes sur mon Wildfire. J'aimerais grandement réduire ce temps, car le parsing s'execute au lancement de l'application. Connaissez vous des méthodes intéressantes pour cela ? Ou bien me suggérer un autre moyen pour enregistrer les données de mon fichiers (qui ne changeront jamais) ? J'ai testé en essayant de déclarer mes données directement dans un ArrayList, mais il y a une erreur comme quoi je ne peux pas stocker autant de données. Le code que j'utilise : ArrayList<City> cityConfig = new ArrayList<City>(); InputStream is = context.getResources().openRawResource(R.raw.city); BufferedReader reader = new BufferedReader(new InputStreamReader(is)); try { String line; int i = 0; while ((line = reader.readLine()) != null) { if(i > 0){ String[] split = line.split(";"); String zip = split[0]; String s = split[1]; zip = zip.substring(1, zip.length() - 1); s = s.substring(1, s.length() - 1); cityConfig.add(new City(zip, s)); } i++; } } catch (Exception ex) {ex.printStackTrace();} finally { try { is.close(); } catch (Exception e) {e.printStackTrace();} } La lenteur vient-elle de l'utilisation d'un ArrayList ? Merci d'avance
JbWGY Posté(e) 31 mars 2011 Auteur Posté(e) 31 mars 2011 as-tu essayé de les mettre en base de données ? La différence se ferait sentir ? Je ne connais pas le fonctionnement des bases de données avec Android, peut on utiliser des bases de données embarquées ? (ou faut-il utiliser des outils comme H2 pour Java ?)
chpil Posté(e) 1 avril 2011 Posté(e) 1 avril 2011 Android embarque de base un moteur de bdd (sqlite) et tout le nécessaire pour manipuler des bdd. Dans ton cas, sous réserver que tes données se prêtent à une mise en base, tu y gagnerais: - le parsing de ton fichier ne serait à faire qu'une seule fois, au premier lancement de l'application - l'occupation mémoire serait réduite (plus besoin d'un ArrayList pour y stocker toutes tes données)
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.