kalil45
Messages postés5Date d'inscriptionjeudi 26 septembre 2013StatutMembreDernière intervention15 juin 2014
-
Modifié par KX le 15/06/2014 à 23:10
KX
Messages postés16733Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 janvier 2024
-
15 juin 2014 à 23:46
Bonjour,
je suis debutant dans la programmation, ma tache est de fair un classe java le code ci dessous pour tansformer 3 fichiers txt en 1 seul fichier xml
j'ai l'erreur ci dessous.
L'erreur:
java.lang.ExceptionInInitializerError
Caused by: java.util.MissingResourceException: Can't find bundle for base name Parametrage, locale fr_FR
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1427)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1250)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:777)
at fr.followthecode.fileparser.FileParserV15.<clinit>(FileParserV15.java:22)
Exception in thread "main" ci dessous
mon code:
package fr.followthecode.fileparser;
/** * @author Gary * * * programmation et logiciels libres */
import java.io.BufferedInputStream;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Locale;
import java.util.ResourceBundle;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class FileParserV15 {
/** * @param args * @throws IOException */
static Locale locale = new Locale("fr", "FR");
private static final ResourceBundle rbConfigFichier = ResourceBundle.getBundle("Parametrage", locale);
public static void main(String[] args) throws IOException {
// la condition avec la quelle on dois parser le text
Pattern pattern = Pattern.compile("[a-zA-Z-]+[A-Z ]+ |[0-9]+|[0-9]+|[0-9]");
Pattern pattern1 = Pattern.compile("[a-zA-Z-]+[A-Z ]+ |[0-9]+|[0-9]+|[0-9]+|[a-zA-Z0-9]+|[a-zA-Z][***]");
// le fichier de sortie en xml
// String fichierXML =
// "C:/User/U223481/Documents/tablette/fichierXML.xml";
String fichierXML = rbConfigFichier.getString("fichierXML");
// le fichier d'entrée pour la france
// File fileFrance = new
// File("C:/User/U223481/Documents/tablette/DIALOGFR.TXT");
// File fileFrance = (File) rbConfigFichier.getObject("fileFrance");
String fileFrance = rbConfigFichier.getString("fileFrance");
File FichierFrance = new File(fileFrance);
// le fichier d'entrée pour l'Europe
// File fileEurope = new
// File("C:/User/U223481/Documents/tablette/DIALOGEXP.TXT");
// File fileEurope = (File) rbConfigFichier.getObject("fileEurope");
String fileEurope = rbConfigFichier.getString("fileEurope");
File fichierEurope = new File(fileEurope);
// le fichier qui indique les objectifs et les zonnes des pays pour
// l'eruope
// File fileObjectifEu = new
// File("C:/User/U223481/Documents/tablette/Conf_Europe.TXT");
// File fileObjectifEu = (File)
// rbConfigFichier.getObject("fileObjectifEu");
String fileObjectifEu = rbConfigFichier.getString("fileObjectifEu");
File FichierOjectif = new File(fileObjectifEu);
/**
* fileContentFrance: fichier contenant les information concernant la
* france fileContentEurope: fichier contenant les information
* concernant l'Europe fileContentObjectifEu: fichier contenant les
* information concernant les objectifs les Zones et les groupes
*
*/
String fileContentFrance = readFileAsString(FichierFrance.getAbsolutePath());
String fileContentEurope = readFileAsString(fichierEurope.getAbsolutePath());
String fileContentObjectifEu = readFileAsString(FichierOjectif.getAbsolutePath());
// String fileContentFrance =
// readFileAsString(fileFrance.getAbsolutePath());
// String fileContentEurope =
// readFileAsString(fileEurope.getAbsolutePath());
// String fileContentObjectifEu =
// readFileAsString(fileObjectifEu.getAbsolutePath());
// fichier en écriture en XML
FileWriter fw = new FileWriter(fichierXML);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter fichierSortie = new PrintWriter(bw);
/**
* déclaration de la liste pour mettre les valeurs lu du fichier
* concernne. v1ListFr: pour la france v2ListEu: pour l'Europe v4ConfEu:
* pour les objectifs, zone...
*
*/
ArrayList<Object> v1ListFr = new ArrayList<Object>();
ArrayList<Object> v2ListEu = new ArrayList<Object>();
ArrayList<Object> v4ConfEu = new ArrayList<Object>();
/**
* on utilse le parsage pour chaque fichier selon le besoin matche: pour
* le fichier france match2 pour le fichier Europe match4 pour le
* fichier où on trouve les objectifs, Zone..
*/
Matcher match = pattern.matcher(fileContentFrance);
Matcher match2 = pattern.matcher(fileContentEurope);
Matcher match4 = pattern1.matcher(fileContentObjectifEu);
/**
* matchList est une méthode pour remplir les listes
*/
matchList(match, v1ListFr);
matchList(match2, v2ListEu);
matchList(match4, v4ConfEu);
/**
* parcourir une liste à l'aide d'un Iterator pour recuppere la date est
* supprimer les premiers éléments
*/
Iterator iteratorFr = v1ListFr.iterator();
for (int i = 0; i < 9; i++) {
if (v1ListFr.contains("STATISTIQUES ") & i == 0) {
fichierSortie.println("<?xml version=1.0?>");
fichierSortie.println("<root DateStart=''" + v1ListFr.get(i + 2) + "''" + "DateStop=''" + v1ListFr.get(i + 2) + "''"
+ " DateLastUpdate=''" + v1ListFr.get(i + 4) + "''" + ">");
}
if (iteratorFr.hasNext()) {
iteratorFr.next();
iteratorFr.remove();
}
}
Iterator iteratorEu = v2ListEu.iterator();
for (int i = 0; i < 9; i++) {
if (iteratorEu.hasNext()) {
iteratorEu.next();
iteratorEu.remove();
}
}
Iterator iteratorConf = v4ConfEu.iterator();
for (int i = 0; i < 11; i++) {
if (iteratorConf.hasNext()) {
iteratorConf.next();
iteratorConf.remove();
}
}
/*
* fusionner les deux listes france et europe dans une seule liste en
* mettant les valeurs de liste Europe dans la liste France
*/
v1ListFr.addAll(v2ListEu);
for (int k = 0; k < v1ListFr.size(); k++) {
fichierSortie.println("<fillale>");
/**
* la methode trim() c'est pour enlever l'espace à la fin de la
* chaine
*/
String ValEsp = ((String) v1ListFr.get(k)).trim();
fichierSortie.println(" <nom>" + ValEsp + "</nom>");
if (ValEsp.contains("AC ")) {
fichierSortie.println(" <marque>Citroen</marque>");
} else {
fichierSortie.println(" <marque>Peugeot</marque>");
}
for (int i = 0; i < v4ConfEu.size(); i++) {
if (v4ConfEu.get(i).equals(v1ListFr.get(k))) {
// CMDCLTS
fichierSortie.println(" <cmdclts>");
fichierSortie.println(" <nb>" + v1ListFr.get(k + 1) + "</nb>");
fichierSortie.println(" <objectif>" + v4ConfEu.get(i + 1) + "</objectif>");
fichierSortie.println(" <tendance>" + v4ConfEu.get(i + 1).hashCode() / (v1ListFr.get(k + 1)).hashCode() + "</tendance>");
fichierSortie.println(" </cmdclts>");
// VENTES
fichierSortie.println(" <ventes>");
fichierSortie.println(" <nb>" + v1ListFr.get(k + 2) + "</nb>");
fichierSortie.println(" <objectif>" + v4ConfEu.get(i + 2) + "</objectif>");
fichierSortie.println(" <tendance>" + v4ConfEu.get(i + 2).hashCode() / (v1ListFr.get(k + 2)).hashCode() + "</tendance>");
fichierSortie.println(" </ventes>");
// Factures
fichierSortie.println(" <factures>");
fichierSortie.println(" <nb>" + v1ListFr.get(k + 3) + "</nb>");
fichierSortie.println(" <objectif>" + v4ConfEu.get(i + 3) + "</objectif>");
fichierSortie.println(" <tendance>" + v4ConfEu.get(i + 3).hashCode() / (v1ListFr.get(k + 3)).hashCode() + "</tendance>");
fichierSortie.println(" </factures>");
// GROUPES
fichierSortie.println(" <groupes>");
fichierSortie.println(" <groupe>" + v4ConfEu.get(i + 4) + "</groupe>");
fichierSortie.println(" </groupes>");
// ZONE
fichierSortie.println(" <zone>");
fichierSortie.println(" <zone>" + v4ConfEu.get(i + 5) + "</zone>");
fichierSortie.println(" </zone>");
}
}
fichierSortie.println("</fillale>");
k = k + 3;
}
fichierSortie.println("</Root>");
fichierSortie.close();
}
// private static void println(String string) {
// TODO Auto-generated method stub
// }
// private static void If(Object object) {
// TODO Auto-generated method stub
// }
/**
* matchList est une methode pour remplir la liste ArrayList
*/
private static void matchList(Matcher matcher, ArrayList<Object> maListe) {
while (matcher.find()) {
maListe.add(matcher.group().toString());
}
}
/**
* readFileAsString est une methode pour lire les fichiers txt.
*/
private static String readFileAsString(String filePath) throws java.io.IOException {
byte[] buffer = new byte[(int) new File(filePath).length()];
BufferedInputStream f = null;
try {
f = new BufferedInputStream(new FileInputStream(filePath));
f.read(buffer);
} finally {
if (f != null)
try {
f.close();
} catch (IOException ignored) {
}
}
return new String(buffer);
}
}
KX
Messages postés16733Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 janvier 2024127 15 juin 2014 à 23:46
Bonsoir,
Ton programme plante avant d'entrer dans le main car il ne trouve pas le fichier
Parametrage_fr_FR.properties
, celui-ci doit être placé dans le classpath de l'application, par défaut c'est le répertoire le plus haut de ta hiérarchie de classe, c'est à dire celui qui contient le package "fr" ici.