next up previous contents index
Next: Modes d'accès à un Up: Patterns Previous: Les flots

     
Fichiers

La lecture et l'écriture d'octets sur un fichier se fait à l'aide des classes FileInputStream  et FileOutputStream , sous-types respectifs de InputStream et OutputStream. L'exemple suivant montre une application qui copie un fichier dans un autre (dont les noms sont donnés sur la ligne de commande), octet par octet ; si les deux noms de fichiers ne sont pas donnés sur la ligne de commande, on utilise les flots standards System.in, et System.out, ce qui est possible car FileOutputStream et PrintStream sont des sous-types de OutputStream.

  public static void main(String[] args)
    throws IOException {
    InputStream in = System.in;
    OutputStream out = System.out;
    if (args.length > 0) 
      in = new FileInputStream(args[0]);
    if (args.length > 1)
      out = new FileOutputStream(args[1]);
    copier(in, out);
  }

En l'absence de récupération de l'exception IOException, la méthode main() doit déclarer qu'elle est susceptible de déclencher cette exception.

Pour concaténer des octets à la fin d'un fichier (au lieu d'écrire en écrasant éventuellement son contenu), on utilise un autre constructeur de FileOutputStream, avec l'argument supplémentaire true :

    if (args.length > 1) 
      out = new FileOutputStream(args[1], true);

La classe File  a pour objet des chemins d'accès à des fichiers ou à des répertoires (et non les fichiers eux-mêmes). Cette classe est utile pour obtenir diverses propriétés des fichiers (savoir si un chemin désigne un fichier ordinaire ou un répertoire, est accessible en lecture ou en écriture, etc.) :

 File cheminRepertoire =
   new File("/usr/local/www/doc/java/jdk1.1.5/docs");
 File cheminFichier =
   new File(cheminRepertoire, "index.html");
 ...
   if (cheminRepertoire.isDirectory() &&
       cheminFichier.canRead()) {
     ...
   }

La méthode length() , appliquée à un objet de type File et qui retourne un long, détermine la taille d'un fichier en nombre d'octets.



 
next up previous contents index
Next: Modes d'accès à un Up: Patterns Previous: Les flots
R. Lalement
2000-10-23