feuille3

publicité
C. Recanati
InHM Java
Master 1, 2012
TP 3
Exercice 1 Implémenter la classe abstraite Benchmark du cours.
Exercice 2 le but de cet exercice est de tester et vérifier des objets de classe
File.
1) Ecrire une classe Test
- qui crée un objet File intitulé monRep avec l’instruction
File monRep = new File («.../usr/.../adresse/...») ;
- puis teste et imprime s’il s’agit bien d’un nom de répertoire.
Ensuite cette classe crée un nouvel objet de type File avec
File monFichier = new File (monRep,«fichier.java») ;
imprime si ce fichier existe, si on peut le lire, et si on peut écrire
dedans.
2) Ecrire une classe permettant d’obtenir la liste de tous les fichiers
d’un répertoire donné par son nom et d’afficher la date de leur
dernière modification.
3) Modifier le code précédent pour que l’application lise le nom du
répertoire et celui du fichier à vérifier en argument au programme.
 Utiliser les méthodes getAbsolutePath, getName et
getParent pour imprimer les informations sur le répertoire initial.
Récupérer ensuite un tableau contents de File avec la méthode
listFiles et imprimer les éléments de ce tableau en indiquant à
chaque fois s’il s’agit ou non d’un répertoire, et en donnant la date
de leur dernière modification (créer un objet Date à partir de
contents[i].lastModified() ).
Exercice 3 Sorties binaires : la classe DataOutputStream.
Ecrire une classe TestFlotDeDonnees qui crée un répertoire à partir
d’un chemin (String) s’il n’existe pas, quitte le programme si ce
chemin correspond à un fichier qui n’est pas un répertoire, et sinon
crée un fichier nommé « donnees.txt » dans ce répertoire. Le
programme va alors écrire dans ce fichier la chaîne de caractères
suivante : « Donnees inutilisables entrantes et sortantes ».
Le programme traitera les exceptions de type IOException et les
imprimera si elles se produisent. On imprimera également la taille
en octets du flot DataOutputStream représentant le fichier en
utilisant la méthode size(). [Remarque : On doit constater que si la
chaîne initiale contient n caractères - ces caractères étant des
caractères Unicode (codés sur 16 bits) - ils occupent alors 2n octets].
 1. Pour créer un DataOutputStream permettant d’écrire dans un
fichier, on crée d’abord un objet File, puis un objet
FileOutputStream à partir de l’objet File, puis un objet
DataOutputStream à partir de l’objet FileOutputStream.
2. Pour écrire une chaîne String dans le flot de sortie, on dispose de
la méthode writeChars() qui accepte un argument de type String.
Correction de l’exercice 3:
import java.io.* ;
import java.util.Date;
public class TestFlotDeDonnees {
public static void main (String [ ] args ) {
String maChaine = new String (« Donnees inutilisables
\ entrantes et sortantes ») ;
String nomRepertoire = « xxx/MesDonnees » ;
try {
File rep = new File (nomRepertoire) ;
if ( !rep.exists()) // si le repertoire n’existe pas
rep.mkdir() ; // le créer
else if ( !rep.isDirectory()) {
System.err.println (nomRepertoire +
«n’est pas un repertoire») ;
return ;
}
File unFichier = new File(rep,«donnees.txt»);
unFichier.createNewFile() ;
DataOutputStream monFlotDeDonnees =
new DataOutputStream (
new FileOutputStream(unFichier)) ;
monFlotDeDonnees.writeChars(maChaine) ;
}
catch (IOException e) {
System.out.println («IOException levee:» + e) ;
}
}
}
Téléchargement