Super CSV

Super CSV 2.1

Windows / Kasper B. Graversen / 96 / Especificaciones completas
Descripción

Super CSV: el paquete CSV definitivo para desarrolladores de Java

Si es un desarrollador de Java, sabe lo importante que es tener las herramientas adecuadas a su disposición. Y cuando se trata de trabajar con archivos CSV, Super CSV es el paquete que necesita. Esta biblioteca gratuita y de código abierto facilita la lectura y escritura de archivos CSV en Java, con soporte para mapeo profundo y mapeo basado en índices usando la nueva extensión Dozer.

Pero, ¿qué diferencia a Super CSV de otras bibliotecas? Por un lado, está diseñado para ser fácil de programar. Eso significa que no necesita ser un experto en analizar o formatear datos: Super CSV se encarga de todo eso por usted. También es altamente configurable, por lo que puede personalizar su comportamiento para satisfacer sus necesidades.

Echemos un vistazo más de cerca a lo que Super CSV puede hacer.

Leer y escribir archivos CSV

En esencia, Super CSV se trata de leer y escribir datos en formato de valores separados por comas (CSV). Este es un formato de archivo común utilizado para intercambiar datos entre diferentes aplicaciones o sistemas.

Con Super CSV, leer un archivo es tan simple como crear un objeto lector y llamar a su método read():

```java

ICsvBeanReader beanReader=new CsvBeanReader(new FileReader("data.csv"), CsvPreference.STANDARD_PREFERENCE);

intentar {

final String[] encabezado=beanReader.getHeader(true);

procesadores CellProcessor[] finales=getProcessors();

Mi Frijol mi Frijol;

while ((myBean=beanReader.read(MyBean.class, header, procesadores))!=null) {

System.out.println(myBean);

}

} finalmente {

beanReader.close();

}

```

Este código lee cada línea del archivo "data.csv" en una instancia de MyBean (un objeto Java simple y antiguo), utilizando los encabezados de la primera línea como nombres de propiedad. También aplica algunos procesadores de celda (más sobre estos más adelante) a cada campo antes de configurarlos en el objeto.

Escribir datos funciona de manera similar:

```java

ICsvMapWriter mapWriter=new CsvMapWriter(new FileWriter("output.csv"), CsvPreference.STANDARD_PREFERENCE);

intentar {

final String[] encabezado=new String[]{"nombre", "edad", "correo electrónico"};

mapWriter.writeHeader(encabezado);

Map<String,Object> fila1=new HashMap<>();

fila1.put("nombre", "Juan");

fila1.put("edad", 25);

fila1.put("correo electrónico", "[email protected]");

//. .. añadir más filas. ..

List<Map<String,Object>> filas=Arrays.asList(row1,row2,row3);

mapWriter.write(filas, encabezado, getProcessors());

} finalmente {

mapWriter.close();

}

```

Aquí creamos un objeto escritor que escribe la salida en "output.csv". Luego escribimos algunos encabezados seguidos de varias filas de datos (representados como mapas). Nuevamente aplicamos algunos procesadores de celdas antes de escribir cada campo.

Mapeo de datos

Una de las funciones más poderosas de Super CVS es su capacidad para realizar un mapeo profundo entre objetos y columnas en un archivo. Esto significa que si su formato de entrada o salida no coincide exactamente con su representación interna de datos (por ejemplo, si los nombres de las columnas son diferentes), aún puede convertir fácilmente entre ellos.

Por ejemplo:

```java

Cliente de clase pública {

@CsvBindByName(columna="Nombre")

cadena privada nombre;

@CsvBindByName(columna="Apellido")

cadena privada apellido;

@CsvBindByName(columna="Dirección de correo electrónico")

correo electrónico privado de cadena;

}

//. ..

Mapeador ICsvDozerBeanMapper =

nuevo CsvDozerBeanMapperBuilder()

. withMappingFiles(mappingFile)

. construir();

Listar<Cliente> clientes =

asignador.mapToBeans(

flujo de entrada csv,

Cliente.clase);

//. ..

```

Aquí definimos nuestra propia clase personalizada "Cliente" que tiene campos anotados con anotaciones "@CsvBindByName" que indican desde qué columna deben asignarse al leer o escribir respectivamente.

Luego usamos `CsvDozerMapper` que usa Dozer bajo el capó, otro proyecto popular de código abierto, para realizar esta conversión automáticamente en función de estas anotaciones.

Procesadores de células

Otra característica clave de Super CVS son los procesadores de celdas: clases pequeñas que transforman celdas individuales durante las operaciones de lectura o escritura.

Por ejemplo:

```java

CellProcessor estático privado[] getProcessors() {

procesadores CellProcessor[] finales =

{

// validación de nombre

nuevo NoNulo(),

// validación de edad y conversión

nuevo ParseInt(),

// validación y conversión de correo electrónico

nuevo EmailValidator(),

};

procesadores de retorno;

}

```

En este ejemplo, definimos tres instancias de procesador de celdas: NotNull verifica si hay algún valor presente; ParseInt convierte valores de cadena en enteros; EmailValidator comprueba si una dirección de correo electrónico parece válida.

Estas instancias de procesador luego se pasan junto con otros parámetros al crear lectores/escritores/mapeadores.

Conclusión

Super CVS proporciona a los desarrolladores un conjunto de herramientas potente y fácil de usar para trabajar con archivos de valores separados por comas en sus proyectos Java.

Ya sea que esté tratando con grandes conjuntos de datos o simplemente necesite algo rápido y sucio para tareas ad-hoc,

Super CVS tiene todo cubierto: desde operaciones básicas de E/S hasta mapeos avanzados hasta validaciones/conversiones complejas a través del procesamiento de celdas.

Entonces, ¿por qué no intentarlo hoy?

Especificaciones completas
Editor Kasper B. Graversen
Sitio del editor
Fecha de lanzamiento 2013-04-24
Fecha Agregada 2013-04-25
Categoría Herramientas de desarrollo
Subcategoría Software Java
Versión 2.1
Requisitos del sistema operativo Windows 2003, Windows 2000, Windows Vista, Windows, Windows 7, Windows XP
Requisitos Java
Precio Free
Descargas por semana 0
Descargas totales 96

Comments: