
Ecrire une classe TestFlotDeDonnees qui crée un répertoire à partir 
d’un chemin (String) s’il n’existe pas, quitte le programme si ce 
chemin correspond à un fichier qui n’est pas un répertoire, et sinon 
crée un fichier nommé « donnees.txt » dans ce répertoire (à 
condition que ce fichier n’existe pas déjà). Le programme va alors 
écrire dans ce fichier la chaîne de caractères « Donnees inutilisables  
entrantes et sortantes ».  
Le programme traitera les exceptions (de type IOException ) et les 
imprimera  si elles se produisent. On imprimera également la taille 
en octets du flot DataOutputStream  représentant le fichier en 
utilisant la méthode size(). [Remarque : On doit constater que si la 
chaîne initiale contient n caractères - ces caractères étant des 
caractères Unicode (codés sur 16 bits) - ils occupent alors 2n octets]. 
 
  1. Pour créer un DataOutputStream  permettant d’écrire dans un 
fichier, on crée d’abord un objet File, puis un objet 
FileOutputStream  à partir de l’objet File, puis un objet 
DataOutputStream  à partir de l’objet FileOutputStream . 
2. Pour écrire une chaîne String dans le flot de sortie, on dispose de 
la méthode writeChars() qui accepte un argument de type String.  
 
Correction 
Exercice 1 
import java.io.*; 
public class In { 
  private static int c; 
 ... // voir énoncé de l’exo plus haut 
  public static void init() { readC(); } 
  public static boolean isEmpty() { return c == -1; } 
 
  public static String getString () { 
    String s = ""; 
    while (!(isEmpty() || isWhite() )) {  
      s += (char) c;  
      readC ();  
    } 
    while (!(isEmpty() || isWhite() )) 
      return s; 
  } 
  public static int getInt() { 
      return Integer.parseInt(getString()); 
  } 
  public static double getDouble () { 
      return Double.parseDouble(getString()); 
  } 
}