Bonjour tous le monde.
J'aimerai créer un tableau (en ascii) dans un fichier texte du style (Problème d'alinéa, en fait je veux que met colonne soit uniforme, donc les "|" alignés) :
Pour cela je dispose d'une classe StatsActes que j'ai créé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CONTEXT |TRAITE |A_APPLIQUER | ---------------------------------------------------------------------------------------------| 1erContexte |20 |5 | 2eContexte |20 |5 | 3eContexte |205400000000000|5 | 4eContexte |8 |511454152121211| 5eContexteTresLonggggggggggggg|8 |511454152121211|
Sur une requête en base, je récupère une List<StatsActes>, puis je la transforme en HashMap<String, Set<StatsActes>> pour trier tout ceci par contexte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public class StatsActes { private String contexte; private String etat; private String nombre; //Je vous épargne mes getters et setters. }
Ce que j'aimerai, c'est créer mon tableau comme ci dessus mais en tenant compte de la longueur des mes champs (trouver le champ le plus long, mettre des espaces après mon print de mon champ) pour avoir un tableau uniforme pour pouvoir lire mon fichier correctement et pas l'exemple ci dessus sans alinéas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 HashMap<String, Set<StatsActes>> map = new HashMap<String, Set<StatsActes>>(); for (StatsActes stats : statsActes) { String context = stats.getContexte(); Set<StatsActes> sa = new HashSet<StatsActes>(); sa.add(stats); if(!map.containsKey(context)){ map.put(context, sa); } else{ map.get(context).add(stats); } }
(Je précise l'entête : CONTEXT = contexte de ma classe StatsActes, TRAITE et A_APPLIQUER sont les états que je récupère de StatsActes aussi)
Pour la création de mon fichier texte, je n'ai pas le choix, je dois utiliser les librairies standards. Personnellement j'utilise ceci :
Voila j'espère avoir été assez clair sur mon besoin. Si vous voulez plus d'informations n'hésitez pas! Merci d'avance à tous le monde
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 OutputStream outputStream = new FileOutputStream(new File("./File.txt")); Writer writer = new OutputStreamWriter(outputStream);
Partager