1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| import java.io.*;
import java.util.Vector;
public class ConcatenationFichiers
{
// Méthode lancée à l'appel de l'instruction :
// java ConcatenationFichiers nomFichier1 ... nomFichierN nomFichierDest
public static void main (String [ ] args)
{
try
{
Vector<BufferedInputStream> ensembleFichiers = new Vector<BufferedInputStream>();
// Ajout à ensembleFichiers de tous les flux de données avec buffer
// correspondant à chaque fichier d'entrée passé en paramètres
// (sauf le dernier paramètre)
for (int i = 0; i < args.length - 1; i++)
ensembleFichiers.addElement (new BufferedInputStream (
new FileInputStream (args [i])));
// Création d'un ensemble de flux d'entrée
InputStream fluxEntree =
new SequenceInputStream (ensembleFichiers.elements ());
// Ouverture en écriture avec un buffer du fichier
// passé en dernier paramètre dans la ligne de commande
OutputStream fluxDestination =
new BufferedOutputStream (
new FileOutputStream (args [args.length -1]));
byte donnees [ ] = new byte [1000];
int nbreOctetsLus;
// Lecture puis écriture des données
while ((nbreOctetsLus = fluxEntree.read (donnees)) != -1)
fluxDestination.write (donnees, 0, nbreOctetsLus);
// Fermeture des flux
fluxDestination.close ();
fluxEntree.close ();
}
catch (IOException e)
{
// Exception déclenchée si un problème survient pendant l'accès aux fichiers
System.out.println (e);
}
}
} |
Partager