bonjour,

je souhaite inserer le résultat de parsage des fichiers d'extension .tpl dans un fichier .txt.

j'ai utilisé une méthode qui permet d'inserer les fichiers que je souhaite parser dans un vecteur (Vector<File>), puis une méthode pour parser mes fichiers.

mais je trouve un problème pour inserer le résultat de parsage de chaque fichier à unfichier .txt.

voici le code que j'ai programmé:

[import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Vector;

import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.parser.ParserDelegator;


public class tester extends HTMLEditorKit.ParserCallback{
//*****************************************************
FileWriter fw;
static BufferedWriter bw;
static PrintWriter pw;
//*****************************************************
InputStream ips;
InputStreamReader ipsr;
static BufferedReader br;
//******************************************************
static ParserDelegator parser;

//contructeur d'entrée.
public tester() throws IOException{
fw = new FileWriter("hassna.txt");
bw=new BufferedWriter(fw);
pw=new PrintWriter(bw);
}

//constructeur de sortie
public tester(File fichier) throws FileNotFoundException{
ips=new FileInputStream(fichier);
ipsr=new InputStreamReader(ips);
br=new BufferedReader(ipsr);
parser=new ParserDelegator();
}

//Méthode pour parser les objets br.
public static void parssage() throws IOException{
HTMLEditorKit.ParserCallback callback=new tester();
parser.parse(br, callback, true);
}


//la methode handleText qui sera appelée par la methode parse de la calasse ParserDelegator().
public void handleText(char []data,int pos){
pw.println(data);
System.out.println(data);
}
//Méthode pour lister tous les fichiers .tpl qui existe dans le repertoire templates
public static Vector<File> lister(){
File repertoire=new File("D:\\PFE\\modules");
File []list1 =repertoire.listFiles();
Vector<File> list4=new Vector<File>();
for(int i=0;i<list1.length;i++){
// System.out.println("mon repertoire module: "+list1[i].getName());
File []list2=list1[i].listFiles();
for(int j=0;j<list2.length;j++){
if(list2[j].isDirectory() && "templates".equals(list2[j].getName())){
// System.out.println("mon sous repertoire module: "+list2[j].getName());
File []list3=list2[j].listFiles();
for(int k=0;k<list3.length;k++){
//System.out.println(list3[k].getName());
if(list3[k].isFile() && list3[k].getName().contains(".tpl")){
list4.add(list3[k]);
}else if(list3[k].isDirectory()&& !(".svn".equals(list3[k].getName()))&&("inc_consult_anesth".equals(list3[k].getName())
|| "inc_examen".equals(list3[k].getName())
|| "inc_acc".equals(list3[k].getName()))){
File []list5=list3[k].listFiles();
for(int m=0;m<list5.length;m++){
list4.add(list5[m]);
}
}

}
}
}
}
return list4;
}


public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
Vector<File> listeTPL=lister();
for(int i=0;i<listeTPL.size();i++){
tester fichier=new tester(listeTPL.elementAt(i));
parssage();

}
pw.close();

br.close();

}

}
]


Lors de l'exécution du programme j'obtient le résultat suivant:



&mdash Sélection d'un exécutant
{{foreach from=$executants.$category_id item=executant}}
Exception in thread "main" java.lang.StackOverflowError
at javax.swing.text.html.parser.ContentModelState.advance(ContentModelState.java:205)
at javax.swing.text.html.parser.ContentModelState.advance(ContentModelState.java:161)
at javax.swing.text.html.parser.TagStack.advance(TagStack.java:137)
at javax.swing.text.html.parser.Parser.legalElementContext(Parser.java:520)
at javax.swing.text.html.parser.Parser.legalTagContext(Parser.java:695)
at javax.swing.text.html.parser.Parser.legalElementContext(Parser.java:617)
..........................

ceci juste une porsion du résultat.

je cherche à parser tous les fihiers qui existent dans le Vector<File> et iserer le résultat issu du parsage dans un fichier .txt.

Merci infiniment pour votre aide

Cordialement.