Tecnología

Inicio

Cómo leer un archivo CSV a Java

Cómo leer un archivo CSV a Java


CSV o valores separados por comas, archivos se utilizan comúnmente como un formato universal para el intercambio de datos simples, especialmente entre las aplicaciones de hoja de cálculo. El formato es simple. Tome una tabla de datos y colocar el nombre de cada columna en la primera línea, con cada nombre separado de los demás por una coma. A continuación, pasar por la tabla completa, colocando cada fila en una línea con cada columna separados por comas. Java no tiene una construida en la utilidad para la lectura de archivos CSV, pero eso no debe usted dejar de utilizarlos en la aplicación Java. El formato simple hace que sea fácil crear su propio archivo del analizador de Java CSV.

Instrucciones

1 Crear una nueva clase llamada CSVParser.java pegando lo siguiente en un archivo de texto vacío:

java.io.File importación;
java.io.FileNotFoundException importación;
java.util.ArrayList importación;
java.util.Scanner importación;
javax.swing.table.DefaultTableModel importación;
javax.swing.table.TableModel importación;

CSVParser public class {

}

2 Pegar el método "de análisis" siguiente en él entre los soportes de la clase:

public static TableModel parse(File f) throws FileNotFoundException {

ArrayList & lt; String> cabeceras = new ArrayList & lt; String> ();
ArrayList & lt; String> oneDdata = new ArrayList & lt; String> ();

// Obtener los encabezados de la tabla.

Scanner lineScan = new Scanner(f);
Scanner s = new Scanner(lineScan.nextLine());
s.useDelimiter(",");
while (s.hasNext()) {
headers.add(s.next());
}

// Ir a través de cada línea de la tabla y agregar cada celda a ArrayList

while (lineScan.hasNextLine()) {
s = new Scanner(lineScan.nextLine());
s.useDelimiter(", *");
while (s.hasNext()) {
oneDdata.add(s.next());
}
}
String[][] data = new String[headers.size()][oneDdata.size()/headers.size()];

// Mover los datos en una matriz de vainilla por lo que se puede poner en una mesa.

for (int x = 0; x < headers.size(); x++) {
for (int y = 0; y < data[0].length; y++) {
data[x][y] = oneDdata.remove(0);
}
}

// Crear una tabla y lo devuelve.

return new DefaultTableModel(data, headers.toArray());

}

3 Pega el siguiente método principal, justo debajo del método de análisis sintáctico de la Etapa 2:

public static void main(String[] args) throws FileNotFoundException {
// Call the parse method and put the results in a table.
TableModel t = CSVParser.parse(new File("test.csv"));

// Imprimir todas las columnas de la tabla, seguido de una nueva línea.

for (int x = 0; x < t.getColumnCount(); x++) {
System.out.print(t.getColumnName(x) + " ");
}
System.out.println();

// Imprimir todos los datos de la tabla.

for (int x = 0; x < t.getRowCount(); x++) {
for (int y = 0; y < t.getColumnCount(); y++) {
System.out.print(t.getValueAt(x, y) + " ");
}
System.out.println();
}

}