Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> Java Programming >> .

Come leggere un file CSV in Java

CSV , o Comma Separated Value , i file sono comunemente usati come un formato universale per lo scambio di dati semplici , soprattutto tra le applicazioni di foglio di calcolo . Il formato è semplice . Prendere una tabella di dati e inserire il nome di ogni colonna nella prima riga , con ogni nome separato dagli altri da una virgola . Quindi , passare attraverso la tabella completa , ponendo ogni riga su una riga con ogni colonna separati da virgole. Java non ha un costruito nel programma di utilità per la lettura di file CSV , ma questo non dovrebbe impedirvi di utilizzare nella vostra applicazione Java . Il formato semplicistica rende facile creare il proprio Java parser di file CSV . Istruzioni
1

Creare una nuova classe denominata CSVParser.java incollando il seguente in un file di testo vuoto :

import java.io.File ; java.io.FileNotFoundException importazione; importazione java.util.ArrayList ; importazione java.util.Scanner , l'importazione javax.swing.table.DefaultTableModel ; javax.swing.table.TableModel importazione;

class CSVParser pubblico { }
2

Incolla il seguente metodo "parse " in esso tra le parentesi della classe :

pubblico parse TableModel statico ( File f ) throws FileNotFoundException {

intestazioni ArrayList = new ArrayList < , String > (); ArrayList oneDdata = new ArrayList ();

//Ottiene le intestazioni del LineScan = new Scanner table.Scanner ( f) ; Scanner s = new Scanner ( lineScan.nextLine ()); s.useDelimiter ( " , "); while ( s.hasNext ( ) ) { headers.add ( s.next ( ) );}

//Passare attraverso ogni riga della tabella e aggiungere ogni cella al ArrayListwhile ( lineScan.hasNextLine ( ) ) { s = new Scanner ( lineScan.nextLine ()); s.useDelimiter ( " *") , mentre ( s.hasNext ( ) ( ) { oneDdata.add s.next ( ) );} } String [] [ ] dati = new String [ headers.size ()] [ oneDdata.size ( ) /headers.size ( ) ] ; //spostare i dati in una matrice di vaniglia in modo che possa essere messo in un table.for ( int x = 0; x < headers.size (); x + + ) {for ( int y = 0; . y < dati [ 0 ] lunghezza ; y + + ) { dati [ x ] [ y ] = oneDdata.remove ( 0 ) ; } } //Creazione di un tavolo e di ritorno it.return nuovo DefaultTableModel ( dati , headers.toArray ());

}

3

Incollare il seguente metodo principale appena sotto il metodo parse dal Punto 2 :

public static void main ( String [] args ) throws FileNotFoundException { //Chiama il metodo parse e mettere i risultati in un table.TableModel t = CSVParser.parse ( new File ( " test.csv "));

//Stampa tutte le colonne della tabella , seguito da un nuovo line.For (int x = 0; x < t.getColumnCount (); x + + ) { System.out.print ( t.getColumnName ( x ) + " ");} System.out.println ( ) ;

//Stampa tutti i dati dal 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 (); } }



 

Programmazione © www.354353.com