Bonjour,
Voilà j'ai écris ce petit bout de code, qui simule une jointure de deux fichiers .txt qui contiennent chacun 10 caractères (char), on commence par la lecture des deux fichiers, insérer les caractères de chacun des deux fichiers dans deux vecteurs correspondants, ensuite j'implémente une boucle qui aura pour but de trouver les caractères en commun entre ces deux vecteurs et les mettre dans un troisième vecteur.
mon objectif est de remplacer la boucle par une ou même deux méthodes propres à la classe VECTOR
mais je ne trouve pas
qui pourrais m'aider??voilà le code qui soit dit en passant marche trés bien, mais le travail demandé est d'utiliser la classe vector plutot qu'une boucle
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 package TP1; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileWriter; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.util.Vector; public class Jointure { /** Lecture du fichier text avec récupération de chacun des caractères dans un vecteur*/ public static Vector<Character> readTab(String fichsource){ Vector<Character> tableau=new Vector<Character>(); try{ InputStream ips=new FileInputStream(fichsource); InputStreamReader ipsr=new InputStreamReader(ips); BufferedReader br=new BufferedReader(ipsr); String ligne; while ((ligne=br.readLine())!=null) if(ligne.length() > 0) tableau.add(ligne.charAt(0)); br.close(); System.out.println("Lecture du fichier "+fichsource+" ...Réussie"); } catch (Exception e){ System.out.println(e.toString()); } return tableau; } /**je fais ma jointure : */ public static Vector<Character> jointure1(Vector<Character> tableau1, Vector<Character> tableau2){ Vector<Character> res = new Vector<Character>(); for(int i=0; i<tableau1.size(); i++) for(int j=0; j<tableau2.size(); j++) if(tableau1.elementAt(i).equals(tableau2.elementAt(j))) res.add(tableau1.elementAt(i)); return res; } /** Ecriture du résultat de jointure dans un fichier T.text*/ public static void ecrireFichier(Vector<Character> table, String fichdest){ String chaine=""; for(int i=0; i<table.size(); i++) chaine += (table.elementAt(i)+"\n"); try{ FileWriter fw = new FileWriter (fichdest); BufferedWriter bw = new BufferedWriter(fw); PrintWriter fichierSortie = new PrintWriter(bw); fichierSortie.println (chaine); fichierSortie.close(); System.out.println("Le fichier " + fichdest + " a été créé !"); } catch (Exception e){ System.out.println(e.toString()); } } public static void main(String[] args){ Vector<Character> tableauR = readTab("R.txt"); Vector<Character> tableauS = readTab("S.txt"); Vector<Character> tableT = jointure1(tableauR, tableauS); System.out.println("Le Résulat de la jointure est le suivant "+tableT); ecrireFichier(tableT, "T.txt"); } }
Partager