Insertion dans un fichier texte avant chargement avec sql loader

Résolu
pink90 Messages postés 34 Date d'inscription lundi 25 avril 2011 Statut Membre Dernière intervention 18 juin 2013 - 30 mai 2013 à 10:57
pink90 Messages postés 34 Date d'inscription lundi 25 avril 2011 Statut Membre Dernière intervention 18 juin 2013 - 3 juin 2013 à 13:22
bonjour tous le monde j'espère que vous allez bien,
alors je fait une application java desktop et je veut à partir de cette application sélectionner deux fichiers texte qui ont la même structure et les mêmes champs et les charger tous les deux dans la même table de la base de données à l'aide de l'outil sql loader, mais avant ça je doit créer un champ nommé type dans chacun des deux fichiers qui va contenir le mot IN pour le 1er fichier et le mot OUT pour le deuxième, les deux fichiers sont volumineux et c'est fatiguant d'ajouter les mots IN et OUT manuellement pour tous les enregistrement, j'ai cherché comment le faire de façon automatique mais j'ai aucune idée dans la tête est ce possible de faire ce travail automatiquement ??
Merci pour votre aide

5 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
2 juin 2013 à 09:02
Salut,

Il faut parcourir toutes les lignes de ton fichier pour ajouter les informations.

Si tu ne sais pas le faire :http://www.javafr.com/codes/LIRE-ECRIRE-FICHIERS-TEXTE_52348.aspx
3
pink90 Messages postés 34 Date d'inscription lundi 25 avril 2011 Statut Membre Dernière intervention 18 juin 2013
30 mai 2013 à 11:18
j'ai oublié de dire que mes fichiers ont la forme suivante:

AAA;BBB;CCC;DDD
AAA;BBB;CCC;DDD
AAA;BBB;CCC;DDD
.......

et je dois insérer un ;IN ou ;OUT à la fin de chaque ligne des deux fichiers
0
pink90 Messages postés 34 Date d'inscription lundi 25 avril 2011 Statut Membre Dernière intervention 18 juin 2013
3 juin 2013 à 10:16
merci pour ta réponse mais est ce que ce code va me permettre d'ajouter les données à chaque fin de ligne sans écraser le contenu déjà existant ?
0
pink90 Messages postés 34 Date d'inscription lundi 25 avril 2011 Statut Membre Dernière intervention 18 juin 2013
3 juin 2013 à 12:12
je répond à ma question : Oui, je peut ajouter ce que je veut à chaque fin de ligne, mais il y'a un petit problème il ne conserve pas la mise en forme du fichier source ce qui me rend la manipulation très difficile par la suite
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pink90 Messages postés 34 Date d'inscription lundi 25 avril 2011 Statut Membre Dernière intervention 18 juin 2013
3 juin 2013 à 13:22
problème résolu pour les gens qui auront peut être besoin de ça j'ai fait quelques modifs pour conserver la même mise en forme que mon ancien fichier :

package modele;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.List;

/**
 * 
 * @classe GestionFichiers
 * 
 * @description Classe qui gere les acces aux fichiers textes
 * 
 * @author Julien
 *
 */

public class GestionFichiers {

/**
 * cette fonction va lire le contenu d'un fichier
 * @param nomFichier : nom du fichier en entree
 * @return resultat : liste des lignes
 */
public static List<String> lireFichier(String nomFichier){
BufferedReader fluxEntree=null;
String ligneLue;
List<String> lignes = new ArrayList<String>();
try{
fluxEntree = new BufferedReader(new FileReader(nomFichier));
ligneLue = fluxEntree.readLine();
while(ligneLue!=null){
lignes.add(ligneLue);
ligneLue = fluxEntree.readLine();
}
System.out.println("fichier lue !");
}
catch(IOException exc){
exc.printStackTrace();
}
try{
fluxEntree.close();
}
catch(IOException e){
e.printStackTrace();
}
return lignes;
}

/**
 * Ce procédure écrit dans le fichier les lignes de la liste
 * @param nomFichier : nom du fichier dans lequel écrire
 * @param lignes : liste des lignes à écrire
 */
public static void ecrireFichier(String nomFichier, List<String> lignes){
BufferedWriter fluxSortie=null;
try{
fluxSortie = (new BufferedWriter(new FileWriter(nomFichier)));
for(int i=0;i<lignes.size()-1;i++){
fluxSortie.write(lignes.get(i));
fluxSortie.newLine();
}
fluxSortie.write(lignes.get(lignes.size()-1));
System.out.println("fichier ecris !");
}
catch(IOException exc){
exc.printStackTrace();
}
try{
fluxSortie.close();
}
catch(IOException e){
e.printStackTrace();
}
}
}


Merci pour ton aide Julien
0
Rejoignez-nous