CSV , eller semikolonavgränsade , är filer som ofta används som ett universellt format för utbyte av enkla uppgifter , särskilt mellan kalkylprogram . Formatet är enkelt . Ta en tabell med data och placera namnet på varje kolumn på första raden , med varje namn separerad från de andra med ett komma . Sedan , gå igenom hela tabellen , placera varje rad på en linje med varje kolumn separerad med kommatecken . Java har inte en inbyggd verktyg för att läsa CSV-filer , men det bör inte hindra dig från att använda dem i din Java-program . Den enkla formatet gör det lätt att skapa en egen Java CSV-fil parser . Instruktioner
1
Skapa en ny klass som heter CSVParser.java genom att klistra in följande i en tom textfil :
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
Klistra in följande " parse " metoden i det mellan fästena i klassen :
public static TableModel parse ( File f ) kastar FileNotFoundException {
ArrayList headers = new ArrayList < , String > ( ) ; ArrayList oneDdata = new ArrayList ( ) ;
//Get rubrikerna i table.Scanner Linescan = new Scanner ( F ) , Scanner s = new Scanner ( lineScan.nextLine ( ) ) ; s.useDelimiter ( " , " ) , medan ( s.hasNext ( ) ) { headers.add ( s.next ( ) ) ; }
//Gå igenom varje raden i tabellen och lägga till varje cell i ArrayListwhile ( lineScan.hasNextLine ( ) ) { s = new Scanner ( lineScan.nextLine ( ) ) ; s.useDelimiter ( " * " ) , medan ( s.hasNext ( ) ) { oneDdata.add ( s.next ( ) ) ; } } String [] [ ] Uppgifter = new String [ headers.size ()] [ oneDdata.size ( ) /headers.size ( ) ], //flytta data i en vanilj array så att den kan sättas i ett table.for ( int x = 0 , x < headers.size ( ) ; x + + ) {for ( int y = 0; . y < uppgifter [ 0 ] längd , y + + ) { uppgifter [ x ] [ y ] = oneDdata.remove ( 0 ) ;} } //Skapa en tabell och retur it.return nya DefaultTableModel ( data headers.toArray ( ) ) ;
}
3
Klistra in följande huvudsakliga metoden precis under parse metoden från Steg 2 :
public static void main ( String [] args ) kastar FileNotFoundException { //Ring parse metoden och att resultaten i en table.TableModel t = CSVParser.parse ( new File ( " test.csv " ) ) ;
//Skriv ut alla kolumner i tabellen , följt av en ny line.for ( int x = 0 , x < t.getColumnCount (); x + +) { System.out.print ( t.getColumnName (x) + " ");} System.out.println ();
//Skriv ut alla data från table.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 ( );}
} Addera ditt