Sådan læses en CSV fil i Java

Sådan læses en CSV fil i Java Ciaran Griffin / Lifesize / Getty Images

CSV eller Kommasepareret værdi, filer er almindeligt anvendt som en universel format for udveksling af simple data, især mellem regnearksprogrammer.Formatet er simpelt.Tag en tabel med data og placere navnet på hver kolonne på den første linje, med hvert navn adskilt fra de andre med et komma.Så, gå gennem fuldt bord, placerer hver række på linie med hver kolonne adskilt af kommaer.Java har ikke en indbygget værktøj til at læse CSV-filer, men det bør ikke stoppe dig fra at bruge dem i din Java-program.Den forsimplede format gør det nemt at oprette din egen Java CSV-fil parser.

Instruktioner

  1. Opret en ny klasse ved navn CSVParser.java ved at indsætte 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. Indsæt følgende "parse"

    -metoden ind i det mellem beslagene i klassen:

    public static TableModel parse (File f) kaster FileNotFoundException {

    ArrayList & amp; lt; String & gt;headers = ny ArrayList & amp; lt; String & gt; ();
    ArrayList & amp; lt; String & gt;oneDdata = ny ArrayList & amp; lt; String & gt; ();

    // Få overskrifterne i tabellen.

    Scanner lineScan = ny scanner (f);
    Scanner s = ny scanner (lineScan.nextLine ());
    s.useDelimiter (& amp; quot; & amp; quot;);
    mens (s.hasNext ()) {
    headers.add (s.next ());
    }

    // Gå gennem hver linje i tabellen og tilføje hver celle til ArrayList

    mens (lineScan.hasNextLine ()) {
    s = ny scanner (lineScan.nextLine ());
    s.useDelimiter (& amp; quot ;, * & amp; quot;);
    mens (s.hasNext ()) {
    oneDdata.add (s.next ());
    }
    }
    String [] [] data = new String [headers.size ()] [oneDdata.size () / headers.size ()];


    // Flyt data til en vanille-array, så det kan sættes i en tabel.

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


    // Oprette en tabel og returnere det.

    returnere nye DefaultTableModel (data, headers.toArray ());

    }

  3. Indsæt følgende vigtigste metode lige under parse metode fra Trin 2:

    public static void vigtigste (String [] args) kaster FileNotFoundException {
    & amp; # 9; // Ring til parse metode og sætte resultaternei en tabel.
    TableModel t = CSVParser.parse (ny fil (& amp; quot; test.csv & amp; quot;));

    // Udskriv alle de kolonner i tabellen, efterfulgt af en ny linje.

    for (int x = 0; x & amp; lt; t.getColumnCount (); x ++) {
    System.out.print (t.getColumnName (x) + & amp; quot; & amp; quot;);
    }
    System.out.println ();

    // Udskriv alle data fra tabellen.

    for (int x = 0; x & amp; lt; t.getRowCount (); x ++) {
    for (int y = 0; y & amp; lt; t.getColumnCount (); y ++) {
    System.out.print(t.getValueAt (x, y) + & amp; quot; & amp; quot;);
    }
    System.out.println ();
    }

    }

561
0
3
Java Programmering