Csv to text

Contenu du snippet

Bonjour , cette application permet de sélectionner un fichier CSV puis un fichier texte vide et lors de l'appui sur le bouton "OK" , le fichier texte sera rempli par les données situées dans le fichier CSV. On peut ensuite sélectionner autant de fichiers CSV qui seront mis aussi dans le fichier texte sans écraser les informations déja existantes !!!

Source / Exemple :

import java.io.BufferedReader;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileSystemView;

import java.awt.*;
import java.awt.event.*;
import java.io.File; 
import java.util.Date; 
import jxl.*; 
import jxl.write.*;
import jxl.write.biff.RowsExceededException;
import java.io.BufferedWriter;
import java.io.File; 
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date; 
import java.util.StringTokenizer;
import jxl.*; 
import jxl.read.biff.BiffException;

/*
 * Author : mohamed Jacem
 * 
 * 
 * I love Tunisia !!!
 * 
 * 
 * */

public class cert extends JFrame implements ActionListener{
	
	
	
	
	
	
	JButton b0 = new JButton("Parcourir");
	JButton b1 = new JButton("Parcourir");
	JButton b2 = new JButton("OK");
	
	static JTextField tx0 = new JTextField("",10);  
	static JTextField tx1 = new JTextField("",10);  	
	String src,dst;
	
	
	
	public cert(){
		super("CSV Organizer version 1.0");
		
		Container contenu = getContentPane();
		JPanel P1= new JPanel (new GridLayout(3,3,10,120));
		
		contenu.add(P1);
		
		
		P1.setBackground(Color.YELLOW);
		
		contenu.setLayout(new GridLayout(1,1));
		
		// Squelette de l'application
		
		JLabel la = new JLabel (" Le chemin du fichier CSV :");
		JLabel la11 = new JLabel ("                ");
		
		P1.add(la);
		
		JLabel la1 = new JLabel ("             ");
		
		
		
		P1.add(tx0);
		P1.add(b0); // bouton parcourir
		
		
		
		JLabel la2 = new JLabel (" Le chemin du fichier TXT :");
		P1.add(la2);
		
		P1.add(tx1);
		P1.add(b1); // 2éme bouton parcourir
		
		P1.add(la1);
		P1.add(b2);
		b2.addActionListener(this);
		b0.addActionListener(this);
		b1.addActionListener(this);
		
		P1.add(la11);
		
		setSize(700,400);
		setVisible(true);
		
	}

	
	///***********************
	
	public class FiltreSimple extends FileFilter{
		   //Description et extension acceptée par le filtre
		   private String description;
		   private String extension;
		   //Constructeur à partir de la description et de l'extension acceptée
		   public FiltreSimple(String description, String extension){
		      if(description == null || extension ==null){
		         throw new NullPointerException("La description (ou extension) ne peut être null.");
		      }
		      this.description = description;
		      this.extension = extension;
		   }
		   //Implémentation de FileFilter
		   public boolean accept(File file){
		      if(file.isDirectory()) { 
		         return true; 
		      } 
		      String nomFichier = file.getName().toLowerCase(); 

		      return nomFichier.endsWith(extension);
		   }
		      public String getDescription(){
		      return description;
		   }
		}
	
	
	public void actionPerformed (ActionEvent evt){
		Object s=evt.getSource();
		
		if (s==b2){
		
		
			
			 if (tx0.getText()!=null && tx1.getText()!=null) 
			{
			
			
		String fileName=tx0.getText();
		
		try {
			BufferedReader br = new BufferedReader( new FileReader(tx0.getText()));
			BufferedWriter bw = new BufferedWriter(new FileWriter(tx1.getText(),true));
			
		bw.newLine();
		bw.write("**********************************************************");
		bw.newLine();
		bw.write("Fichier => "+tx0.getText());
		bw.newLine();
		bw.write("**********************************************************");
		bw.newLine();	
			
			
		
		
		//	String strLine = null;
			StringTokenizer st = null;
			int lineNumber = 0, tokenNumber = 0;
		
			while( (fileName = br.readLine()) != null)
			{
				lineNumber++;
 
				//break comma separated line using ","
				st = new StringTokenizer(fileName, ",");
 
				while(st.hasMoreTokens())
			      	{
					//display csv values
					tokenNumber++;
					String msg = "Line " + lineNumber + " # " + tokenNumber + " # "+ st.nextToken();
					
					System.out.println(msg);
					
			bw.write(msg);
		    bw.newLine();
				
				}
 
				//reset token number
				tokenNumber = 0;
				
			}
			bw.newLine();
			bw.close();
			
			
		} // la fin de try
		
		
		
		
		catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}			
			
	
			} // la fin de Else
			
			}//la fin de 1ére if
	
		
		if (s==b0)
		{
		
			///*************
			FileFilter csv = new FiltreSimple("Fichiers CSV",".csv");
			
			///*********************
			
			
			FileSystemView vueSysteme = FileSystemView.getFileSystemView(); 
			//récupération des répertoires
			 
			File home = vueSysteme.getHomeDirectory(); 

			
			
			  //création dun nouveau filechosser
		    JFileChooser chooser = new JFileChooser(home);
		    
		    ///*********
		    chooser.addChoosableFileFilter(csv);
		    ///********

		//intitulé du bouton
		chooser.setApproveButtonText("Choix du fichier CSV"); 
		//affiche la boite de dialogue 
		chooser.showOpenDialog(null); 
		if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
		{
		
		tx0.setText(chooser.getSelectedFile().getAbsolutePath());
		}                                    
	    
		}
		
		
		
		if (s==b1)
		{
	
			
			///*************
			FileFilter txt = new FiltreSimple("Fichiers TXT",".txt");
			
			///*********************
			
			
			FileSystemView vueSysteme = FileSystemView.getFileSystemView(); 
			//récupération des répertoires
			 
			File home = vueSysteme.getHomeDirectory(); 

			
			
			
			
			
			//tx0.setEditable(false);
			
			
			  //création dun nouveau filechosser
		    JFileChooser chooser1 = new JFileChooser(home);

		  ///*********
		    chooser1.addChoosableFileFilter(txt);
		    ///********

		    
		    
		//intitulé du bouton
		chooser1.setApproveButtonText("Choix du fichier TXT"); 
		//affiche la boite de dialogue 
		chooser1.showOpenDialog(null); 
		if (chooser1.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
		{
		
		tx1.setText(chooser1.getSelectedFile().getAbsolutePath());
		} 			
			
			
		}// la fin de 3éme if
		
	
	
	
	} //la fin d' action performed
	
		
	
	
	public static void main(String[] args) throws RowsExceededException, WriteException {

		cert cert1 = new cert();
		

}	
		
	
	
}

Conclusion :

Cette application a été faite dans le cadre d'un stage d'été. Son but principal consiste à mettre plusieurs fichiers CSV dans un fichier texte car ce dernier est manipulable plus facilement que le fichier CSV.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.