Files
SAE21_2023/src/Lecteur.java

50 lines
2.3 KiB
Java
Raw Normal View History

2024-05-01 21:40:26 +02:00
import java.io.*;
2024-05-03 16:27:56 +02:00
/**
* La classe <code>Lecteur</code> est utilisée pour lire les données d'un fichier de grille.
*
* Elle comporte une méthode statique <code>lecture</code> qui prend en entrée un fichier et une grille, puis lit les données du fichier pour les stocker dans la grille.
*
* Le fichier doit contenir une grille Sudoku sous forme de chiffres, chaque ligne représente une ligne de la grille et chaque chiffre représente une valeur dans la grille.
*
* @author Raban Hugo
* @version 5.0
*/
public class Lecteur {
/**
* Méthode statique pour lire les données d'un fichier et les stocker dans une grille.
*
* @param fichier Le fichier à lire.
* @param grille La grille dans laquelle stocker les données lues.
*/
public static void lecture(File fichier, int[][] grille) {
int[] valeurs = new int[9]; // Tableau pour stocker les valeurs lues temporairement
2024-05-01 21:40:26 +02:00
2024-05-03 16:27:56 +02:00
try {
FileInputStream fileInputStream = new FileInputStream(fichier); // Crée un flux pour lire le fichier
DataInputStream dataInputStream = new DataInputStream(fileInputStream); // Crée un flux de données pour lire les données à partir du flux de fichier
2024-05-01 21:40:26 +02:00
2024-05-03 16:27:56 +02:00
try {
// Lecture des données du fichier
for (int i = 0; i < 9; i++) {
valeurs[i] = dataInputStream.readInt(); // Lecture d'une ligne de valeurs dans le tableau temporaire
}
dataInputStream.close(); // Fermeture du flux de données
} catch (IOException e) {
System.out.println("Erreur lors de la lecture du fichier."); // Gestion des erreurs de lecture
}
} catch (FileNotFoundException e) {
System.out.println("Fichier non trouvé."); // Gestion des erreurs de fichier non trouvé
2024-05-01 21:40:26 +02:00
}
2024-05-03 16:27:56 +02:00
// Transformation des valeurs lues en tableau 2D pour la grille
for (int i = 0; i < 9; i++) {
for (int j = 8; j >= 0; j--) {
int valeurActuelle = valeurs[i] % 10; // Extrait le chiffre des unités de la valeur
valeurs[i] = (valeurs[i] - valeurActuelle) / 10; // Supprime le chiffre extrait de la valeur
grille[i][j] = valeurActuelle; // Stocke la valeur dans la grille
}
}
2024-05-01 21:40:26 +02:00
}
2024-05-03 16:27:56 +02:00
}