2011-05-19 12 views
22

Tengo un archivo CSV en la carpeta drawable/asset. En el archivo CSV hay cuatro columnas. El primero es para la fecha y el resto tres para los datos enteros.Cómo analizar el archivo CSV en la aplicación de Android?

Necesito analizar este archivo CSV y guardar los datos en matrices separadas.

He buscado una solución, pero no tengo una idea adecuada de cómo hacerlo.

+0

Esto puede ayudar a que mate: http://stackoverflow.com/questions/5360628/get-and-parse-csv-file-in-android – necixy

Respuesta

33

Me gusta este lector csv: https://mvnrepository.com/artifact/net.sf.opencsv/opencsv/2.3

sólo tiene que añadir a su proyecto.

Código de ejemplo (suponiendo que es el archivo de activos/test.csv):

 String next[] = {}; 
     List<String[]> list = new ArrayList<String[]>(); 

     try { 
      CSVReader reader = new CSVReader(new InputStreamReader(getAssets().open("test.csv"))); 
      while(true) { 
       next = reader.readNext(); 
       if(next != null) { 
        list.add(next); 
       } else { 
        break; 
       } 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

Se puede acceder a los datos importados con, por ejemplo,

list.get(1)[1] 

que devolvería una cadena.

+0

Cómo repetir el proceso cuando llegue al fin .... –

+0

@PratikButani the 'for (;;)' hace eso, por lo que puedes volver a hacerlo después de ese loop que quieras – chwi

+0

CSVReader funcionó para mí, después de probar toneladas de otras soluciones de análisis CSV. Me sorprende que el buen análisis de CSV siga siendo una solución difícil de implementar. En mi caso tuve que lidiar con líneas múltiples, y este es el único archivo que lo hizo funcionar. – zeeshan

Cuestiones relacionadas