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) } }