Format.java

import java.io.*;
import java.security.*;
public class Format {
  static void write(String s) throws Exception {
    // Vérifie le format de la chaîne avant de l'écrire
    if (s.indexOf('\n')!=-1) // Si la chaîne contient \n
      throw new IOException("Format incorrect");
    try {
      // Exécution de WriteAction en mode privilégié
      AccessController.doPrivileged (new WriteAction(s));
    } catch (PrivilegedActionException e) { throw e.getException(); }
  }
  /** Classe interne pour l'écriture formatée en mode privilégié. */
  static class WriteAction implements PrivilegedExceptionAction {
    String s;
    WriteAction(String s) {
      this.s = s;
    }
    /** Méthode exécutée en mode privilégié. */
    public Object run() throws IOException {
      // Ouverture du fichier en écriture
      FileWriter o = new FileWriter("format.txt");
      // Écriture de la chaîne formatée
      o.write(s);
      o.close();
      return null;
    }
  }
}