CSV eller Kommasepareret værdi er filerne almindeligt anvendt som et universelt format til udveksling af simple data , især mellem regneark. Formatet er simpelt . Tag en tabel med data og placere navnet på hver kolonne på den første linje , hvor hvert navn adskilt fra de andre ved et komma. Derefter , 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 : Hej
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> Indsæt følgende "parse "-metoden i den mellem beslagene i klassen : Hej
public static TableModel parse (File f ) kaster FileNotFoundException {
ArrayList headers = new ArrayList < , String> (); ArrayList oneDdata = new ArrayList ();
//Hent overskrifterne til den table.Scanner lineScan = new Scanner ( f) Scanner s = new Scanner ( lineScan.nextLine ()); s.useDelimiter ( ",") , mens ( s.hasNext ( )) { headers.add ( s.next ()); }
//Gå gennem hver linje i tabellen og føje hver celle til ArrayListwhile ( lineScan.hasNextLine ( )) { s = new Scanner ( lineScan.nextLine ()); s.useDelimiter (", * "); mens ( s.hasNext () ) { oneDdata.add ( s.next ()); } } String [] [] data = new String [ headers.size ()] [ oneDdata.size () /headers.size () ] //flytte data ind i en vanille vifte , så det kan sættes i en table.for ( int x = 0; x < headers.size (); x + +) { for (int y = 0; . y < data [0] længde y + + ) { data [x] [y] = oneDdata.remove (0) ;}} //Opret et bord og retur it.return nye DefaultTableModel (data , headers.toArray ());
} < br >
3
Indsæt følgende vigtigste metode lige under parse metode fra Trin 2 : Hej
public static void main ( String [] args ) kaster FileNotFoundException { //Ring til parse metoden og sætte resultaterne i en table.TableModel t = CSVParser.parse (ny File ( " test.csv "));
//Print alle kolonner i tabellen , efterfulgt af en ny line.for ( int x = 0 , x < t.getColumnCount ( ) x + + ) { print ( t.getColumnName ( x ) + "" ) ;} System.out.println ();
< p > //Udskriv alle data fra table.for ( int x = 0 , x < t.getRowCount ( ) x + + ) { for (int y = 0 , y < t.getColumnCount ( ) y + +) { print ( t.getValueAt (x, y) + "" );} System.out.println ( );}
}