Procesar un CSV

Groovy

Por varias razones he tenido que procesar un fichero en CSV sencillo y para ello me aproveche de ciertas facilidades de Groovy. A continuación pongo el código utilizado.

Código de la clase de dominio que almacena:

class Pais {

 def descripcion

}

Código del procesado:

def pathTemporal =  System.getProperty("java.io.tmpdir")

def pathFichero = pathTemporal + '/pais.csv'

def fich = new File (pathFichero)

def array = fich.readBytes()

def cadena = new String (array)

def lista = cadena.replace('\n','#').tokenize('#')

def patron = []

def primera = true

lista.each {linea->

    def lineaProcesada = linea.tokenize(';')

    if (primera == true) {

        patron = lineaProcesada

        primera = false

    } else {

        def mapa = [:]

        def valores = lineaProcesada

        def i = 0

        patron.each{clave->

            if ((clave?.trim()?.size() > 0) || (valores[i]?.trim()?.size() > 0)) {

                mapa."$clave" = valores[i]

                i++

            } 

        }

        def temp = new Pais (mapa)

    }

}

Share
Esta entrada fue publicada en Groovy y etiquetada . Guarda el enlace permanente.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *