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 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
| public void pass1(String s) throws IOException{
long time1 = System.currentTimeMillis();
File f = new File("C:/Users/Emilien/Desktop/eclipseWorkspace/complexite/parts"+s+"/partfile");
File p = f.getParentFile();
if (!p.exists())
p.mkdirs();
for (int i=0; i<256; i++){
File f2 = new File("C:/Users/Emilien/Desktop/eclipseWorkspace/complexite/parts"+s+"/partfile"+i);
if (!f2.exists())
f2.createNewFile();
}
long time2 = System.currentTimeMillis();
System.out.println ("Durée de création des fichiers: "+ Long.toString ((time2 - time1)) + " millisecondes.");
//fin creation fichiers
BufferedReader LecteurBufferise = null;
String ligneDonnee;
String Mot1="", Mot2="", Mot3="";
int hashCodeTrigramme=-1, octetPoidsFaible=-1;
boolean eof = false, debut1erMot=true, debut2emeMot=true;
MotMotMot m = new MotMotMot(Mot1, Mot2, Mot3);
ArrayList<String> part = new ArrayList<String>();
try {
//Ouverture du Fichier // le chemin est a modifier dans FileReader
LecteurBufferise = new BufferedReader(new FileReader(s)); //s chemin
while (eof != true) {
//Lecture de la ligne
ligneDonnee = LecteurBufferise.readLine();
if (ligneDonnee != null) {
// on split chaque ligne en utilisant une regex
String[] part1=ligneDonnee.split("[ \t\n]");
int longueurPart1 = part1.length;
for (int i=0; i<longueurPart1; i++){
if(!part1[i].equals("")) part.add(part1[i]);
}
int longueurPart = part.size();
// pour chaque mot de la ligne
for (int k=0; k<longueurPart; k++ ){
// premier cas : on est au debut du fichier
if (debut1erMot) {
Mot1 = part.get(k);
debut1erMot = false;
}
// on est au deuxieme mot
else if (debut2emeMot) {
Mot2 = part.get(k);
debut2emeMot = false;
}
else {
// dans tous les autres cas
Mot3 = part.get(k);
m.setMot1(Mot1); m.setMot2(Mot2); m.setMot3(Mot3);
hashCodeTrigramme = m.hashCode();
octetPoidsFaible = hashCodeTrigramme&0xFF;
ecrireDansFichier(s, octetPoidsFaible, m);
Mot1 = Mot2;
Mot2 = Mot3;
Mot3= "";
}
}
part.clear();
}
else {
eof = true;
}
}
}
catch (FileNotFoundException ex) {
System.out.println("Fichier non trouvé !!");
}
catch (IOException ex) {
System.out.println("Erreur lecture ligne fichier !!");
}
finally {
try {
LecteurBufferise.close();
}
catch (IOException ex1) {
System.out.println("Erreur fermeture fichier !!");
}
}
}
public void ecrireDansFichier(String s, int numFichier, MotMotMot trig) throws IOException{
PrintWriter sortie = new PrintWriter(new BufferedWriter(new FileWriter("C:/Users/Emilien/Desktop/eclipseWorkspace/complexite/parts"+s+"/partfile"+numFichier, true)));
sortie.println(trig);
sortie.close();
} |
Partager