louisard2
Messages postés7Date d'inscriptionmercredi 26 août 2015StatutMembreDernière intervention19 décembre 2021
-
Modifié par KX le 22/10/2015 à 07:44
Bonsoir
mon code a un comportement incompréhensible, il doit lire des fichier à la suite, et vu que j'ai 5 répertoires différents a lire, j'aimerais qu'il finisse avec un répertoire et enchaîne sur le 2eme, lorsque qu'il ne lit qu'1 fichier, tout se passe a merveille, mais le problème apparaît lorsque je fais une boucle afin de changer la variable qui permet de changer de répertoire, à ce moment là, pour tous les autres répertoires il les lit en sautant 2 méthodes, et je ne comprend pas pourquoi.
Ci joint le code, Merci de m'aider à comprendre la raison de ce fonctionnement
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Calendar;
import javax.swing.JOptionPane;
public class TestLecture2 {
public static Chemin chem = new Chemin();
static Path chemin = null;
static Path chemin1 = null;
static Path chemin2 = null;
static Path chemin3 = null;
static String titre = null;
static int numFich = 1;
static int refLigne = 0;
@SuppressWarnings("null")
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
lecture();
numFich++;
System.out.println("\ntest");
}
}
public static void lecture() {
switch (numFich) {
case 1:
choixChemin();
lectureTotale(chemin, chemin1, chemin2, chemin3);
break;
case 2:
choixChemin();
lectureTotale(chemin, chemin1, chemin2, chemin3);break;
case 3:
choixChemin();
lectureTotale(chemin, chemin1, chemin2, chemin3);
break;
case 4:
choixChemin();
lectureTotale(chemin, chemin1, chemin2, chemin3);
break;
case 5:
choixChemin();
lectureTotale(chemin, chemin1, chemin2, chemin3);
break;
default:
break;
}
}
public static void choixChemin() {
switch (numFich) {
case 1:
chemin = Chemin.path_MangaA_E;
chemin1 = Chemin.GenreA_E;
chemin2 = Chemin.ScansA_E;
chemin3 = Chemin.SynopsieA_E;
break;
case 2:
chemin = Chemin.path_MangaF_J;
chemin1 = Chemin.GenreF_J;
chemin2 = Chemin.ScansF_J;
chemin3 = Chemin.SynopsieF_J;
break;
case 3:
chemin = Chemin.path_MangaK_O;
chemin1 = Chemin.GenreK_O;
chemin2 = Chemin.ScansK_O;
chemin3 = Chemin.SynopsieK_O;
break;
case 4:
chemin = Chemin.path_MangaP_T;
chemin1 = Chemin.GenreP_T;
chemin2 = Chemin.ScansP_T;
chemin3 = Chemin.SynopsieP_T;
break;
case 5:
chemin = Chemin.path_MangaU_Z;
chemin1 = Chemin.GenreU_Z;
chemin2 = Chemin.ScansU_Z;
chemin3 = Chemin.SynopsieU_Z;
break;
default:
break;
}
}
static private String lectureTotale(Path fichierTitre, Path fichierGenre,
Path fichierScan, Path fichierSynopsie) {
int i = 0;
String line;
String[] result = null;
String nom1[] = new String[nbrLigneFichier(fichierTitre)];
try (InputStream in1 = Files.newInputStream(fichierTitre);
BufferedReader reader1 = new BufferedReader(
new InputStreamReader(in1))) {
while ((line = reader1.readLine()) != null) {
nom1[i] = line;
result = line.split(";");
for (int x = 0; x < result.length; x++) {
titre = result[1];
}
refLigne++;
Path chemSynopsie = Paths.get(fichierSynopsie + "/" + titre+ ".txt");
System.out.println(nom1[i]);
lectGenre(refLigne, fichierGenre, nbrLigneFichier(fichierGenre));
lectScan(refLigne, fichierScan, nbrLigneFichier(fichierScan));
lectSynopsie(chemSynopsie, nbrLigneFichier(chemSynopsie));
System.out.println("\n");
}
reader1.close();
} catch (IOException x) {
System.out.println(x + "\n\n");
}
return null;
}
static private int nbrLigneFichier(Path path) {
int ligne = 0;
try (InputStream in = Files.newInputStream(path);
BufferedReader reader = new BufferedReader(
new InputStreamReader(in))) {
while ((reader.readLine()) != null) {
ligne++;
}
reader.close();
} catch (IOException x) {
}
return ligne;
}
static private String lectGenre(int numLigneALire, Path path,
int nbrLigneDuFichier) {
String genre = null;
String line = null;
String nom[] = new String[nbrLigneDuFichier];
int i = 0;
int ligne = 0;
try (InputStream in = Files.newInputStream(path);
BufferedReader reader1 = new BufferedReader(
new InputStreamReader(in))) {
while ((line = reader1.readLine()) != null) {
nom[i] = line;
ligne++;
if (ligne == numLigneALire)
System.out.println(nom[i]);
}
reader1.close();
} catch (IOException x) {
System.out.println(x + "\n\n");
}
return genre;
}
static private String lectScan(int numLigneALire, Path path,
int nbrLigneDuFichier) {
String line = null;
String nom[] = new String[nbrLigneDuFichier];
int i = 0;
int ligne = 0;
try (InputStream in = Files.newInputStream(path);
BufferedReader reader1 = new BufferedReader(
new InputStreamReader(in))) {
while ((line = reader1.readLine()) != null) {
nom[i] = line;
ligne++;
if (ligne == numLigneALire)
System.out.println(nom[i]);
}
reader1.close();
} catch (IOException x) {
System.out.println(x + "\n\n");
}
return null;
}
static private String lectSynopsie(Path path, int nbrLigneDuFichier) {
String line = null;
String nom[] = new String[nbrLigneDuFichier];
int i = 0;
try (InputStream in = Files.newInputStream(path);
BufferedReader reader1 = new BufferedReader(
new InputStreamReader(in))) {
while ((line = reader1.readLine()) != null) {
nom[i] = line;
System.out.println(nom[i]);
}
reader1.close();
} catch (IOException x) {
System.out.println(x + "\n\n");
}
return null;
}
}