Bonjour tout le monde !
Depuis hier j'essaie de faire un programme qui permet de concaténer des fichiers sur un dossier local que j'ai crée dans le projet.
Les fichiers ne contiennent qu'une seule ligne chacun , et j'aimerai que le fichier résultat contient la concaténation de ces fichiers avec les lignes de chaque fichier séparées par un saut ligne pour qu'elles ne soient pas collées .
Voici le bout de code que j'ai utilisé avec une hashmap , il me renvoit tout le temps une erreur , je ne sais pas pourquoi ! Pourriez vous m'aider à trouver l'erreur et de corriger mon code s'il vous plaît ??
PS: j'ai ajouté le "ISO-8859-1" puisque mes fichiers sont encodés sur ce format. Ils ont l'extention *.trc mais ils sont tous des textes
Merci par avance de vos retours.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintWriter; import java.util.HashMap; import java.util.Scanner; import java.util.Map.Entry; public class Concatenation { //attributs private static PrintWriter fluxSortie; private static HashMap<String,String> filesNamesPaths ; private static HashMap<String,String> resultat ; private static File folder; /** * @param args * @throws FileNotFoundException */ public static void main(String[] args) throws FileNotFoundException { // TODO Auto-generated method stub //récupérer la liste des path des fichiers textes dans une HashMap folder = new File("input/Traces"); File[] listOfFiles = folder.listFiles(); filesNamesPaths = new HashMap<String,String>(); for (File file : listOfFiles) { if (file.isFile()) { filesNamesPaths.put(file.getName(),file.getPath()); } } File fileTwo=new File("resultatfile.trc"); FileOutputStream fos=new FileOutputStream(fileTwo); fluxSortie = new PrintWriter(fos); resultat = new HashMap<String,String>(); resultat.putAll(filesNamesPaths); for(Entry<String, String> entry : resultat.entrySet()) { // fluxSortie = new PrintWriter(new FileOutputStream("output/Traces/trace")); File file = new File(entry.getValue()); Scanner scanner = new Scanner(file,"ISO-8859-1"); while (scanner.hasNextLine()) { String currentLine = (String) scanner.nextLine(); fluxSortie.print(resultat.put(file.getName(),"")+" " +currentLine + "/r"); /* //Parcourir la HashMap et effectuer les traitements for(Entry<String, String> entry : resultat.entrySet()) { // File file = new File(entry.getValue()); // Scanner scanner = new Scanner(file); File file = new File(entry.getValue()); Scanner scanner = new Scanner(file,"ISO-8859-1"); while (scanner.hasNextLine()) { fluxSortie.print(resultat.put(file.getName(),"")+"/r"); } fluxSortie.println(resultat); scanner.close(); */ } fluxSortie.println(resultat); scanner.close(); } } }
Partager