Skip to content

Créer une interface pour l ' écriture des données #3

Description

@andrechico999

L ' interface ISymptomWriter .
package com.hemebiotech.analytics;

import java.util.HashMap;

/**

  • Anything that will read symptom data from a source
  • Nous choisissons l'objet MAP pour créer un dictionnaire de symptomes sans doublons contenant un compteur
  • The implementation does not need to order the list

/
public interface ISymptomReader {
/
*
* If no data is available, return an empty List
* @return a MAP obtained from a data source, duplicates are not possible
*/
HashMap<String, Integer> GetSymptoms ();

}
Et som implémentation WriteSymptomDataToFile
package com.hemebiotech.analytics;

import java.io.FileWriter;
import java.time.Instant;
//import java.time.InstantSource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

public class WriteSymptomInFile implements ISymptomWriter {

private String filepath;

/**
 * @param filepath chemin du fichier de resultat
 */
public WriteSymptomInFile (String filepath) {
	this.filepath = filepath;
}

@Override
public void WriteSymptoms(HashMap<String, Integer> symptomHashMap) {
	try {
		//On tri les données
		List<String> listeTrieeSymptome = new ArrayList<String>(); // on crée une liste vide
		listeTrieeSymptome.addAll(symptomHashMap.keySet());  // on remplit la liste vide par toutes les clés de la map
		Collections.sort(listeTrieeSymptome);  // on trie la liste des clés.
		
		
		// next generate output
		FileWriter writer = new FileWriter (filepath);
		
		for (Iterator iterator = listeTrieeSymptome.iterator(); iterator.hasNext();) { //on boucle sur la liste triée de clés
			String key = (String) iterator.next();
			int val = symptomHashMap.get(key); // on récupère le compteur dans la map (la valeur de la clé)
			writer.write(key + ": " + val + "\n"); // on écrit dans le fichier de résultat la ligne : Clé : compteur
			System.out.println(key + ": " + val); // on écrit la même chose dans la sortie standard pour information
		}

		writer.close();
	
	} catch (Exception e) { // on gère l'exception ici en l'affichant simplement.
		System.out.println("Erreur lors de l'execution." + e.getMessage());
		e.printStackTrace();
	}
	
}

}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions