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 enkel . Ta en tabell med data och ange namnet på varje kolumn på första raden , med varje namn separerade från de andra genom ett kommatecken . Sedan , gå igenom hela tabellen , utsläppande varje rad på en linje med varje kolumn separerade med kommatecken. Java har ingen 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 förenklade formatet gör det enkelt att skapa dina egna Java CSV -fil parser
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 in i det mellan parentes i klassen:
public static TableModel parse ( File f ) kastar FileNotFoundException {
ArrayList
ArrayList
//få rubrikerna i tabellen
Scanner lineScan=new Scanner ( f ) .
Scanner s=new Scanner ( lineScan. nextLine ());
s. useDelimiter (",");
medan ( s. hasNext ()) {
headers. add ( s. next ());
}
//Gå igenom varje rad i tabellen och lägga till varje cell i ArrayList
medan ( lineScan. hasNextLine ()) {
s=new Scanner ( lineScan. nextLine ());
s. useDelimiter ( " , *");
medan ( s. hasNext ()) {
oneDdata. add ( s. next ());
}
}
String [ ] [ ] data=new String [ rubriker . size () ] [ oneDdata. size () /headers. size ()];
//flytta data till en vanilj array så att den kan placeras i en . bord
for (int x=0 , x
for (int y=0 ; y
data [ x ] [ y ]=oneDdata. remove (0 ) ;
}
}
//Skapa en tabell och återlämna den .
återvända nya DefaultTableModel ( data , headers. toArray ());
}
3 .
Klistra in följande huvudsakliga metod precis under parse metoden från Steg 2 :
public static void main ( String [ ] args ) kastar FileNotFoundException {
//Ring parse metod och att resultaten i en tabell .
TableModel t=CSVParser. parse ( ny fil ( " test. csv "));
//Skriv ut alla kolumner i tabellen , följt av en ny linje
for (int x=0 ; . x
System. out. print ( t. getColumnName ( x ) + " ") ;
}
System. out. println () ;
//Skriv ut alla data från tabellen .
for (int x=0 , x
for (int y=0 ; y
System. out. print ( t. getValueAt (x, y ) + " ") ;
}
System . out. println () ;
}
}
Previous:nothing Next:styrkorna och svagheterna i Visual Basic språk