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.