Insertion dans un fichier texte avant chargement avec sql loader [Résolu]

Messages postés
34
Date d'inscription
lundi 25 avril 2011
Statut
Membre
Dernière intervention
18 juin 2013
- - Dernière réponse : 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
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
6449
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
232
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 130 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
34
Date d'inscription
lundi 25 avril 2011
Statut
Membre
Dernière intervention
18 juin 2013
0
Merci
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
Commenter la réponse de pink90
Messages postés
34
Date d'inscription
lundi 25 avril 2011
Statut
Membre
Dernière intervention
18 juin 2013
0
Merci
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 ?
Commenter la réponse de pink90
Messages postés
34
Date d'inscription
lundi 25 avril 2011
Statut
Membre
Dernière intervention
18 juin 2013
0
Merci
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
Commenter la réponse de pink90
Messages postés
34
Date d'inscription
lundi 25 avril 2011
Statut
Membre
Dernière intervention
18 juin 2013
0
Merci
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
Commenter la réponse de pink90