IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

dupliquer les données contenues dans un fichier csv


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 54
    Points : 34
    Points
    34
    Par défaut dupliquer les données contenues dans un fichier csv
    Bonjour
    J'ai cherché mais je ne trouve pas la solution pour ouvrir un ficheir csv, lire les données contenues puis les dupliquer en remplaçant au passage quelques une d'entre elles.

    Qui peut me donner une solution je galére.

    merci

  2. #2
    Membre à l'essai Avatar de mathieumadrid
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 39
    Points : 23
    Points
    23
    Par défaut
    Salut,

    Voici ce que j'aurais fait pour lire et écrire des fichiers *.csv. Par exemple, si tu veux modifier le fichier test.csv, tu doit faire : java CSV test.csv test2.csv. J'espère t'avoir aidé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    import java.io.*;
    import java.util.*;
     
    public class CSV
    {
    	// Fichier CSV.
    	public String fichier;
    	// Cellules du fichiers à la suite.
    	public LinkedList liste;
    	// Cellules du fichiers dans un tableau.
    	public String[][] cellules;
     
    	public CSV(String fichier)
    	{
    		this.fichier = fichier;
    		liste = new LinkedList();
    	}
     
    	public void read()
    	{
    		int max, nbLignes;
    		max = nbLignes = 0;
    		LinkedList lMax = new LinkedList();
     
    		try
    		{
    			BufferedReader flotFiltre = new BufferedReader(new FileReader(fichier));
    			String ligne;
    			String[] contenu;
     
    			while((ligne = flotFiltre.readLine()) != null)
    			{
    				contenu = ligne.split(";");
     
    				for(int i = 0; i < contenu.length; ++i)
    					liste.add(contenu[i]);
     
    				lMax.add(contenu.length);
    				max = Math.max(max,contenu.length);
    				++nbLignes;
    			}
     
    			flotFiltre.close();
    		}
    		catch(IOException ex){}
     
    		int c = 0;
    		cellules = new String[nbLignes][max];
     
    		for(int j = 0; j < lMax.size(); ++j)
    		{
    			int n = (Integer)lMax.get(j);
     
    			for(int k = 0; k < max; ++k)
    			{
    				if(k < n)
    					cellules[j][k] = (String)liste.get(c++);
    				else
    					cellules[j][k] = "";
    			}
    		}
    	}
     
    	public void write(String destination)
    	{
    		try
    		{
    			BufferedWriter flotFiltre = new BufferedWriter(new FileWriter(destination));
    			String ligne;
    			// C'est ici qu'il faut que tu fasses tes modifs.
    			// Exemple : cellules[2][3] = "Hello";
     
    			for(int i = 0; i < cellules.length; ++i)
    			{
    				ligne = "";
     
    				for(int j = 0; j < cellules[0].length; ++j)
    				{
    					ligne += cellules[i][j];
     
    					if(j < cellules[0].length - 1)
    						ligne += ";";
    				}
     
    				flotFiltre.write(ligne + "\n");
    			}
     
    			flotFiltre.close();
    		}
    		catch(IOException ex){}
    	}
     
    	public static void main(String[] args)
    	{
    		CSV csv = new CSV(args[0]);
    		csv.read();
    		csv.write(args[1]);
    	}
    }

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    Je te remercie mais finalement je l'ai résolu d'une maniére plus simple à laquelle je n'avais même pas songé la voici. Puis que je n'ai pas besoin de lire juste écrire avce les donées que je veux je fige celles qui ne changent pas et je remplace les autres que je veux remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    package test;
     
    import java.io.FileWriter;
    import java.io.IOException;
     
     
     
    public class TestCsv {
     
    	public static void main(String args[]){
    		FileWriter fileWriter=null;
    		String delimiter=";";
    		String[] extension={"OFE","OFI","ATE","RFE","FDS","TGR"};
    		String[] firstLineRequest ={"","A","B","C","3"};
    		String[] secondLineRequest ={"D","E","M","","5"};
    		String[] thridLineRequest ={"X","GEDS","2","EFR"};
    		String[] lineSeparator ={"","","",""};
    		String lineSeparatorTemplate=lineSeparator[0]+delimiter+lineSeparator[1]+delimiter+lineSeparator[2]+delimiter+lineSeparator[3]+"\n";
    		String thridLineRequestTemplate=thridLineRequest[0]+delimiter+thridLineRequest[1]+delimiter+thridLineRequest[2]+delimiter+thridLineRequest[3]+"\n";
    		String file="C:\\Test.csv";
     
    		try {
    			//fileWriter= new FileWriter(file,true);
    			fileWriter= new FileWriter(file);
    			for (int i = 0; i < extension.length; i++) {
    				firstLineRequest[0]=extension[i];
    				secondLineRequest[3]=extension[i];
    				String firstLineRequestTemplate=firstLineRequest[0]+delimiter+firstLineRequest[1]+delimiter+firstLineRequest[2]+delimiter+firstLineRequest[3]+"\n";
    				String secondLineRequestTemplate=secondLineRequest[0]+delimiter+secondLineRequest[1]+delimiter+secondLineRequest[2]+delimiter+secondLineRequest[3]+"\n";
    				fileWriter.write(firstLineRequestTemplate);
    				fileWriter.write(secondLineRequestTemplate);
    				fileWriter.write(thridLineRequestTemplate);
    				fileWriter.write(lineSeparatorTemplate);
    			}
    		} catch (IOException e) {		
    			e.printStackTrace();
    		}
    		finally{
    			  if(fileWriter != null){
    				  try {
    					fileWriter.close();
    				} catch (IOException e) {					
    					e.printStackTrace();
    				}
    			  }
    			}
     
    	}
     
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/01/2014, 10h13
  2. Réponses: 0
    Dernier message: 10/05/2011, 10h31
  3. Réponses: 5
    Dernier message: 17/03/2011, 15h12
  4. Réponses: 15
    Dernier message: 22/07/2009, 22h38
  5. Réponses: 0
    Dernier message: 23/06/2009, 15h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo