Slik leser du en CSV-fil til Java

Slik leser du en CSV-fil til Java


CSV, eller kommadelte, filene blir ofte brukt som et universelt format for utveksling av enkle data, spesielt mellom regnearkprogrammer. Formatet er enkel. Ta en tabell med data og plassere navnet på hver kolonne på den første linjen, med hvert navn atskilt fra de andre med komma. Deretter går gjennom hele bordet, plassere hver rad på en linje med hver kolonne atskilt med komma. Java har ikke en innebygd verktøy for å lese CSV-filer, men det bør ikke stoppe deg fra å bruke dem i din Java-program. Den forenklede format gjør det enkelt å lage din egen Java CSV-filen parser.

Bruksanvisning

1 Opprett en ny klasse som heter CSVParser.java ved å lime inn følgende i en tom tekstfil:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.scanner;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

public class CSVParser {

}

2 Lim inn følgende "parse" metoden til den mellom brakettene i klassen:

public static TableModel parse(File f) throws FileNotFoundException {

Arraylist & lt; String> overskrifter = new Arraylist & lt; String> ();
Arraylist & lt; String> oneDdata = new Arraylist & lt; String> ();

// Få overskriftene i tabellen.

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

// Gå gjennom hver linje av tabellen, og legge til hver celle i 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()];

// Flytt dataene til en vanilje matrise slik at det kan settes i en tabell.

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

// Lag en tabell og returnere den.

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

}

3 Lim inn følgende viktigste metoden like under analysere metoden fra Trinn 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"));

// Skriv ut alle kolonnene i tabellen, etterfulgt av en ny linje.

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

// Skriv ut alle dataene fra tabellen.

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

}