GuardedFileOutputStream.2.java

import java.io.*;
import java.security.*;
public final class GuardedFileOutputStream extends FileOutputStream {
  private Permission p;
  public GuardedFileOutputStream(String name)
    throws FileNotFoundException {
    super(name);
    // Création du droit à vérifier
    p = new FilePermission(name,"write");
  }
  /** Écriture avec vérification de droit. */
  public void write(byte[] b, int off, int len)
    throws IOException {
    // Vérification du droit
    p.checkGuard(null);
    super.write(b, off, len);
  }
  
  // ... Redéfinition des autres méthodes d'écriture...

  /** Fermeture avec vérification de droit. */
  public void close() throws IOException {
    // Vérification du droit
    p.checkGuard(null);
    super.close();
  }
}