Bonjour,
je veux faire un moteur de recherche en utilisant EJB et l indexation des fichiers je fait un code qui lire un fichier mot par mot et compter le nombre d occurrence et je fait le tri decroisant selon le nombre d occurence svp repend moi
aide moi a faire une application EJB svp et merci d avance
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
/**
*
* @author marwa
*/
public class Main {
public static List<String> lire_doc(String lex){
List<String> wordList =new ArrayList<String>();
try{
InputStream ips = new FileInputStream (lex);
InputStreamReader ipsr = new InputStreamReader (ips);
BufferedReader br = new BufferedReader(ipsr);
StreamTokenizer st = new StreamTokenizer(br);
int token;
while((token=st.nextToken())!=StreamTokenizer.TT_EOF){
if(token==StreamTokenizer.TT_WORD){
wordList.add(st.sval);
}
}
}catch(Exception e){
System.out.println(e.getMessage());
}
return wordList;
}
private static Map<String, Integer> countWordList(List<String> wordList) {
Map<String,Integer> wordCounted = new HashMap<String, Integer>();
for (String wordToCount : wordList) {
if(!wordCounted.containsKey(wordToCount)){
Integer count = countWordInList(wordToCount,wordList);
wordCounted.put(wordToCount, count);
}
}
return wordCounted;
}
private static Integer countWordInList(String wordToCount,
List<String> wordList) {
int count = 0 ;
for (String word : wordList) {
if(word.equals(wordToCount)){
count++;
}
}
return new Integer(count);
}
// Ajout des entrées de la map à une liste
System.out.println(map);
// System.out.println(map1);
// Ajout des entrées de la map à une liste
final List<Entry<String, Integer>> entries = new ArrayList<Entry<String, Integer>>(map.entrySet());
// Tri de la liste sur la valeur de l'entrée
Collections.sort(entries, new Comparator<Entry<String, Integer>>() {
public int compare(final Entry<String, Integer>e1, final Entry<String, Integer> e2) {
return e2.getValue().compareTo(e1.getValue());
}
});
// Affichage du résultat
for (final Entry<String, Integer> entry : entries) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}
// Affichage du résultat
//disco le non de liste
/* PrintWriter sr = null;
try {
sr = new PrintWriter(new File ("C:\\indexe"));
Object[] tab = map.keySet().toArray();
for(int i = 0; i< tab.length; i++) {
sr.println(tab[i]+" " + map.get(tab[i]));
sr.flush();
}
} finally {
if (sr != null) {
sr.close();
}*/