Partage
  • Partager sur Facebook
  • Partager sur Twitter

Parsing CSV fichier Java

    16 janvier 2019 à 10:46:42

    package com.cours.singletons;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.nio.charset.StandardCharsets;
    import java.nio.file.Files;
    import java.nio.file.Path;
    import java.nio.file.Paths;
    import com.cours.entities.Personne;
    
    public class CsvSingleton extends AbstractSingleton {
    
        private static CsvSingleton instance;
    	final String personnesCsvPathFile = "personnesCsv.csv";
        
        private CsvSingleton() {
        	this.extractPersonnesDatas();
        }
    
        public static CsvSingleton getInstance() {
        	
        	if ( instance == null ) {
        		synchronized ( CsvSingleton.class ) {
        			instance = new CsvSingleton();
        		}
        	}
        	return instance;
        	
        }
        
        private Personne createPersonneWithFileObject( String[] attributs ) {
            
        	int idPersonne = Integer.parseInt( attributs[0] );
        	String prenom = attributs[1];
        	String nom = attributs[2];
        	Double poids = Double.parseDouble( attributs[3] );
        	Double taille = Double.parseDouble( attributs[4] );
        	String rue = attributs[5];
        	String ville = attributs[6];
        	String codePostal = attributs[7];
        	return new Personne( idPersonne, prenom, nom, poids, taille, rue, ville, codePostal );
        }
    
        @Override
        protected void extractPersonnesDatas() {
        
        	Path pathToFile = Paths.get( personnesCsvPathFile );
        	
        	try ( BufferedReader br = Files.newBufferedReader( pathToFile, StandardCharsets.US_ASCII ) ) {
        		String line = br.readLine();
        		while ( line != null ) {
        			String[] attributs = line.split( ";" );
        			Personne personne = createPersonneWithFileObject( attributs );
        			personnes.add( personne );
        			line = br.readLine();
        		}
        	} catch ( IOException ioe ) {
        		ioe.printStackTrace();
        	}
        }
    
        public static void main( String[] args ) {
        	
        	CsvSingleton cs = new CsvSingleton();
        	cs.extractPersonnesDatas();
        			
        }
    }
        
    
    

    Bonjour

    Je bosse sur un projet pour mon école et je suis bloqué sur cette étape depuis quelque jours, le but du petit projet et de créer une classe qui lit un fichier CSV (qui contient des informations de plusieurs personnes) et en créer des objects (personnes).

    J'ai ecrit mon main test afin de tester cette méthode mais je recois plein de messages d'erreurs .

    java.nio.charset.MalformedInputException: Input length = 1
    	at java.nio.charset.CoderResult.throwException(Unknown Source)
    	at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
    	at sun.nio.cs.StreamDecoder.read(Unknown Source)
    	at java.io.InputStreamReader.read(Unknown Source)
    	at java.io.BufferedReader.fill(Unknown Source)
    	at java.io.BufferedReader.readLine(Unknown Source)
    	at java.io.BufferedReader.readLine(Unknown Source)
    	at com.cours.singletons.CsvSingleton.extractPersonnesDatas(CsvSingleton.java:50)
    	at com.cours.singletons.CsvSingleton.<init>(CsvSingleton.java:17)
    	at com.cours.singletons.CsvSingleton.main(CsvSingleton.java:64)
    java.nio.charset.MalformedInputException: Input length = 1
    	at java.nio.charset.CoderResult.throwException(Unknown Source)
    	at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
    	at sun.nio.cs.StreamDecoder.read(Unknown Source)
    	at java.io.InputStreamReader.read(Unknown Source)
    	at java.io.BufferedReader.fill(Unknown Source)
    	at java.io.BufferedReader.readLine(Unknown Source)
    	at java.io.BufferedReader.readLine(Unknown Source)
    	at com.cours.singletons.CsvSingleton.extractPersonnesDatas(CsvSingleton.java:50)
    	at com.cours.singletons.CsvSingleton.main(CsvSingleton.java:65)
    

    Any Tips s'il vous plait

    • Partager sur Facebook
    • Partager sur Twitter

    Parsing CSV fichier Java

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown