Home » Java, Programación

Manejando archivos CSV con java

5 diciembre 2009 Sin Comentarios

Un archivo CSV (comma-separated values) es un archivo de texto que por lo general es exportado con un procesador de hojas de cálculo donde sus valores están separados por una coma.

El formato CSV es muy sencillo, ejemplo:

"juan",12,10,1989
"pedro",01,03,2000
"jose",24,06,1990

Existe una librería en java para el manejo de CSV, pueden descargarla de AQUI. Busquen el archivo javacsv.jar y agreguenlo a su proyecto, ya sea que usen netbeans o eclipse o cualquier otro editor.

Importamos la libreria:

import com.csvreader.*;

Creamos el objeto CsvReader pasandole la ruta del archivo en el constructor:

    CsvReader csv = new CsvReader("archivo.csv");

Y hacemos un while csv.readRecord() para recolectar todos las posiciones linea por linea:

while(csv.readRecord()){
    String nombre=csv.get(0);
    int dia = Integer.parseInt(csv.get(1));
    String mes = csv.get(2);
    int annio = Integer.parseInt(csv.get(3));
    //aqui el codigo tuyo...
}
Ahora sabemos como leer un archivo CSV, para crear un archivo es muy sencillo:
 
Creamos un objeto de la clase CsvWriter pasandole como parámetro el archivo a crear(la ruta completa si estas en windows):
CsvWriter csvW = new CsvWriter("csvarchivo.csv");

Ahora escribimos cada uno de los campos delimitando la linea con la aplicación del método endRecord() a nuestro objeto:

csvW.write("Fernando");
csvW.write("1");
csvW.write("Febrero");
csvW.write("1989");
csvW.endRecord();
csvW.write("Jorge");
csvW.write("10");
csvW.write("Enero");
csvW.write("1999");
csvW.endRecord();

finalizamos con el cierre del flujo:

csvW.close();

El código completo aqui:

package csv;
 
//se importa la libreria para el manejo de csv: javacsv.jav este en el folder "Lib"
import com.csvreader.*;
//se importan liberias java estandard
import java.io.*;
 
import javax.swing.*;
 
public class main {
 
	/**
	 * autor: pahko   pahko@nullpointerexception.tk
	 * Descripción: muestra como se usa la libreria CSVReader
	 * Página de la libreria: http://www.csvreader.com/java_csv.php
	 * @throws IOException
	 */
	public static void main(String[] args) throws IOException{
		// TODO Auto-generated method stub
		JTextArea area = new JTextArea();
		CsvReader csv = new CsvReader("archivo.csv");
		area.append("Nombre\tDia\tMes\tAño\n");
		while(csv.readRecord()){
			String nombre=csv.get(0);
			int dia = Integer.parseInt(csv.get(1));
			String mes = csv.get(2);
			int annio = Integer.parseInt(csv.get(3));
			area.append(nombre+"\t"+dia+"\t"+mes+"\t"+annio+"\n");
		}
		JOptionPane.showMessageDialog(null, area);
		JOptionPane.showMessageDialog(null, "Ahora vamos a escribir un csv");
		CsvWriter csvW = new CsvWriter("csvarchivo.csv");
		csvW.write("Fernando");
		csvW.write("1");
		csvW.write("Febrero");
		csvW.write("1989");
		csvW.endRecord();
		csvW.write("Jorge");
		csvW.write("10");
		csvW.write("Enero");
		csvW.write("1999");
		csvW.endRecord();
		csvW.close();
	}
 
}

Y aqui les dejo el proyecto de eclipse:

http://nullpointerexception.tk/wp-content/plugins/downloads-manager/img/icons/default.gif Descarga: Manejo de CSV con Java
Fecha: 05/12/2009
Número de Descargas: 338
Descripción: Proyecto de Eclipse que muestra el uso de la libreria CSVReader en java.

Popularity: 33%

If you enjoyed this post, make sure you subscribe to my RSS feed! You can also follow me on Twitter here.

Temas Relacionados

avatar

Acerca de

Deja Tu Comentario!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.