CSV oder Comma Separated Value , werden Dateien gewöhnlich als ein universelles Format für den Austausch von einfachen Daten, insbesondere zwischen Tabellenkalkulationsprogrammen verwendet . Das Format ist einfach . Nehmen Sie eine Tabelle mit den Daten und den Namen der einzelnen Spalten in der ersten Zeile , mit jedem Namen von den anderen durch ein Komma getrennt. Dann durch die vollständige Tabelle zu gehen, indem jede Zeile auf einer Linie mit jeder Spalte durch Komma getrennt. Java hat noch kein Programm für das Lesen in CSV-Dateien gebaut , aber das sollte Sie nicht davon abhalten mit ihnen in Ihre Java-Anwendung . Die einfache Format macht es einfach, Ihre eigenen Java CSV-Datei -Parser erstellen. Anleitung
1
Erstellen Sie eine neue Klasse namens CSVParser.java durch Einfügen der folgenden in eine leere Textdatei :
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 < p> Kopiere folgenden " parse "-Methode in sie zwischen den Klammern in der Klasse :
public static TableModel parse (File f) wirft FileNotFoundException {
ArrayList headers = new ArrayList < ; String> (); ArrayList oneDdata = new ArrayList ();
//Holen Sie sich die Kopfzeilen der table.Scanner LineScan = new Scanner (f); Scanner s = new Scanner ( lineScan.nextLine ()); s.useDelimiter (", "); while ( s.hasNext ()) { headers.add ( s.next ()); }
//Gehe durch jede Zeile der Tabelle und fügen Sie jede Zelle die ArrayListwhile ( 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 ()] ; //Verschieben die Daten in einem Vanille -Array so kann es in einer table.for gesetzt werden (int x = 0 , x < headers.size (); x + +) {for (int y = 0; . y
3
folgende main-Methode direkt unterhalb der parse-Methode aus Schritt 2 einfügen:
public static void main (String [] args ) throws FileNotFoundException { //Aufruf der parse-Methode und setzen die Ergebnisse in einem table.TableModel t = CSVParser.parse ( new File ( " test.csv "));
//drucken Sie alle Spalten der Tabelle , durch eine neue line.for gefolgt (int x = 0; x < t.getColumnCount (); x + +) { System.out.println ( t.getColumnName (x) + " ");} System.out.println ();
< p> //Drucken alle Daten aus dem table.for (int x = 0 , x < t.getRowCount (); x + +) {for (int y = 0 , y < t.getColumnCount (); y + +) { System.out.println ( t.getValueAt (x, y ) + " ");} System.out.println ();} }