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.