J'ai réalisé une sérialisation dans un fichier est ça marche, il y a juste un soucis, c'est que dans le fichier j'ai des caractères spéciaux et les mots sont presque invisibles !
Est-ce un problème d'encodage ? Merci
package com.me;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.lang.reflect.Array;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.DuplicateFormatFlagsException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Implémentation dd la classe ReadDataFromFile
*
*/
public class ReadDataFromFile {
/**
* Récupérer le fichier de la liste, le mettre dans une HashMap 'frequency'
*
*/
public Map<String, Integer> getList(){
/**
* Map<String, Integer> getlist() retourn la liste le nombre des occurences
* @return la liste de nombre des occurences
*/
Map<String, Integer> frequency = new HashMap<>();
/**
* Lever une exception si le transfert du data est mis en échec
*
*/
try {
Path path = Paths.get(System.getProperty("user.dir"))
.resolve(config.inputLink);
BufferedReader reader;
reader = new BufferedReader(new FileReader(path.toFile()));
/**
* déclarer un reader et l'affecter à un string 'line'
*
*/
String line = reader.readLine();
/**
* Si line n'est pas null boucler sur frequency
* compter le nombre des occurence de 'line' dans la liste frequency
* Si pas d'occurence ne pas incrémenter l'occurence '(line, 1)'
*
*/
while(line != null) {
if(frequency.containsKey(line)) {
frequency.put(line,
frequency.get(line) + 1);
} else {
frequency.put(line, 1);
}
line = reader.readLine();
}
System.out.println("SIMO" + frequency);
/**
* Instantier un objet file,
* Indiquer le fichier de sortie dans l'attribut 'config.outOccurences'
*
* @see config
*
*/
FileOutputStream fileOut=new FileOutputStream(config.outOccurences);
ObjectOutputStream out=new ObjectOutputStream(fileOut);
out.writeObject(frequency);
out.close();
/**
* Afficher la liste finale des occurences dans une MapList
*
*/
for(Map.Entry<String, Integer> items : frequency.entrySet()) {
System.out.println(items.getKey() + " " + items.getValue());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return frequency;
}
}
J'ai finalement utilisé le jar "json-simple" ça marche très bien
Merci !
- Edité par Linus_11 5 avril 2020 à 9:22:43
Nobody is perfect I'm Nobody...
Seralisation dans un fichier txt
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Nobody is perfect I'm Nobody...
On n'aime pas ce qu'on ne comprend pas
Nobody is perfect I'm Nobody...
Nobody is perfect I'm Nobody...