Ecrire deux programmes permettant de couper un gros fichier en plusieurs parties puis de le reconstituer.
Le programme coupe reçoit le nom du fichier à couper et la taille en Ko des fichiers à créer en paramètres. Par exemple, on écrira :
java coupe jdk118doc.hlp 1400
pour obtenir des fichiers de 1400 Ko qui pourront être copiés sur une disquette. On suppose que jdk118doc.hlp se trouve dans le même répertoire que coupe.class. Les fichiers obtenus seront nommés :
Pour reconstituer le fichier de départ, on écrira :
java recolle jdk118doc.hlp
Les fichiers obtenus précédemment doivent se trouver dans le même répertoire que recolle.class.
On utilise un FileInputStream nommé in associé au fichier à couper, un tableau d'octets dont la taille est égale à la taille des fichiers contenant les parties.
Une variable num initialisée à 1 compte le nombre de fichiers créés et permet de créer les noms en prenant le nom initial sans extension et en ajoutant le numéro ainsi que l'extension .ttt.
Il suffit alors d'utiliser une boucle pour :
On sort de cette boucle lorsque le nombre d'octets lus devient différent de la taille des fichiers créés; cela signifie qu'il ne restait plus assez d'octets pour remplir un fichier.
On utilise un FileOutputStream nommé out associé au fichier à recomposer. Une variable num initialisée à 1 contient le numéro du fichier à traiter.
On utilise ensuite une boucle pour :
La boucle se répète tant que le fichier pointé par f existe.