TD8 - Les E/S et les exceptions

Durée : 3h

Inès de Courchelle

Objectifs :

  • Appréhender les notions de gestion d’erreur
  • Lire dans un fichier
  • Écrire dans un fichier

Attention :

L’ensemble des exercices ci-dessous ne seront pas tous corrigés en classes

Exercice 1 : Verification

  1. Ecrire la classe Main et la méthode main permettant à un utilisateur de saisir 3 entiers a,b et c
  2. Ecrire la méthode static dans la classe main permettant de résoudre l’équation.
  3. Vérifier et attraper l’erreur lorsque l’utilisateur réalise une mauvaise saisie
  4. Lever une exception lorsque l’utilisateur réalise une mauvaise entrée. Pour cela créer une classe ErreurSaisie qui hérite de la classe Exception.

TIPS

  • Lire l’entrée d’un utilisateur
import java.util.Scanner;

public static void main(String[] args){
    /* Instancier un objet de type Scanner */
    /* une bonne fois pour toutes */
    Scanner sc= new Scanner(System.in);

    /* pour une chaine de caractère */
    System.out.print("Entrer une chaîne de caractères : ");
    String str= sc.nextLine();
    System.out.print("L'utilisateur a écrit : "+ str);

    /* pour un entier */
    System.out.print("Entrer un entier : ");
    int a= sc.nextInt();
    System.out.print("L'utilisateur a écrit : "+ a);

    /* une fois qu'on a terminé d'écouter le scanner */
    sc.close();
}
  • Attraper une exception
try{
    personne.nom="toto";
}catch(Exception e){
    System.err.println("Affichage sur l'entree d'erreur"+ e.getMessage());
    System.out.println("Affichage sur l'entree standard"+e.getMessage());
}
  • Lever une exception
try{
    personne.nom="toto";
}catch(Exception e){
  throw new verificationSaisie();
}

Exercice 2 : Ecrire et lire dans un fichier

  1. Créer la classe Main et la méthode main permettant de créer un fichier bulletin.csv vide
  2. Demander à l’utilisateur de saisir un nom, un prénom et une note
  3. Ajouter au fichier ces informations bulletin.csv
  4. Réaliser une boucle pour ajouter X lignes
  5. Afficher le fichier dans le terminal

Tips

  • Ecrire dans un fichier
String monFichier="monFichier.csv";
FileWriter csvWriter = new FileWriter(monFichier);
csvWriter.append("Chelsea;Olivier Giroud;12"+"\r\n");
csvWriter.append("Arsenal;Henry,Thierry;14"+"\r\n");
csvWriter.flush();
csvWriter.close();
  • Lire dans un fichier
    String row;
    BufferedReader csvReader = new BufferedReader(new FileReader("monFichier.csv"));
    while ((row = csvReader.readLine()) != null) {
        String[] data = row.split(";");
        System.out.println(data[0]);
        System.out.println(data[1]);
        System.out.println(data[2]);
    }
    csvReader.close();