Hoe om te lezen een CSV -bestand in Java

Hoe om te lezen een CSV -bestand in Java Ciaran Griffin / Levensgrote / Getty Images

CSV, of Comma Separated Value, bestanden worden vaak gebruikt als een universeel formaat voor het uitwisselen van eenvoudige gegevens, met name tussen de spreadsheet-toepassingen.Het formaat is eenvoudig.Neem een ‚Äč‚Äčtabel met gegevens en zet de naam van elke kolom op de eerste lijn, waarbij elke naam van de andere gescheiden door een komma.Vervolgens gaan door de volledige tabel, het plaatsen van elke rij op een lijn met elke kolom gescheiden door komma's.Java heeft geen ingebouwde hulpprogramma voor het lezen van CSV-bestanden, maar dat moet je niet stoppen met het gebruik ervan in uw Java-toepassing.De simplistische formaat maakt het gemakkelijk om uw eigen Java-parser CSV-bestand te maken.

instructies

  1. Maak een nieuwe klasse met de naam CSVParser.java door de volgende plakken in een leeg tekstbestand:

    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. Plak volgende "ontleden" methode in het tussen de beugels in de klas:

    openbare statische tafelmodel parse (File f) gooit FileNotFoundException {

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

    // Haal de headers van de tafel.

    Scanner Linescan = new Scanner (f);
    Scanner s = new Scanner (lineScan.nextLine ());
    s.useDelimiter (& amp; quot; & amp; quot;);
    terwijl (s.hasNext ()) {
    headers.add (s.next ());
    }

    // Ga door elke regel van de tabel en voeg elke cel aan de ArrayList

    while (lineScan.hasNextLine ()) {
    s = new Scanner (lineScan.nextLine ());
    s.useDelimiter (& amp; quot ;, * & amp; quot;);
    terwijl (s.hasNext ()) {
    oneDdata.add (s.next ());
    }}

    String [] [] gegevens = new String [headers.size ()] [oneDdata.size () / headers.size ()];


    // Verplaats de gegevens in een vanille-serie, zodat het in een tabel kan worden gebracht.

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

    }}


    // Maak een tabel en terug te sturen.

    nieuwe DefaultTableModel (data, headers.toArray ()) terug te keren;

    }

  3. Plak volgende belangrijkste methode net onder de parse methode uit Stap 2:

    public static void main (String [] args) gooit FileNotFoundException {
    & amp; # 9; // Roep de parse methode en zet de resultatenin een tabel.
    tafelmodel t = CSVParser.parse (nieuw bestand (& amp; quot; test.csv & amp; quot;));

    // Print alle kolommen van de tabel, gevolgd door een nieuwe regel.

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

    // Print alle gegevens van de tafel.

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

    }}

580
0
3
Programmeren In Java