P.O.O (JAVA Avancé) TP: Bonne Chance [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

P.O.O (JAVA)

Ecole Supérieure

El Abdellaoui Saïd

de Technologie de Safi

Année universitaire 2020-2021

P.O.O (JAVA Avancé) TP Objectif : Les Flux (Entrée/Sortée) Séance : 3éme semaine Préparé par : Guerroum khawla, Lbakali

hanane, Hala Kajji, Abid Saad

Exercice 0 : o Ecrire un programme qui permet de lire le dossier racine, savoir son contenu et si c’est un fichier ou un répertoire. o Ecrire un programme qui permet d’afficher le contenu d’un répertoire y compris le contenu de ses sous répertoires.

Exercice 1 : (Gestion des fichiers)  -

Ecrire une classe Linux qui contient les fonctions suivant : o Une fonction ls (File f) qui permet de Lister les informations nécessaires d’un répertoire (les droits, taille et nom).  Exemple : drwx 1200 rep -rw 1111 fich.txt. o Une fonction cp(File fs,File fd) qui permet de copier le contenu de fichier fs dans le fichier fd o Une fonction find(File rep,File f) qui permet de chercher le fichier f dans le répertoire rep. o Une fonction diff (File f1, File f2) qui permet de comparer les deux fichiers f1 et f2 et afficher les lignes différents. o Une fonction diff (File f1, File f2) qui permet de comparer les deux fichiers f1 et f2 et afficher les lignes différents (utilisé la classe FileReader pour lire les deux fichiers ) .

Exercice2 : Ecrire un programme qui permet de copier le contenu de fichier f1 dans le fichier f2 (utilisé la classe BufferedReader,) .

Exercice 3 : (Sérialisation/Désérialisation) -

-

Ecrire une classe nommée Etudiant qui contient les attributs suivants : String nom et prénom, Long CNE. a) Ajouter des modificateurs puis une méthode toString (). b) Sérialiser la classe en implémentant l’interface sérialisable. Ecrire une autre classe nommée TestEtudiant qui contient : Une méthode main () instanciant un objet de type Etudiant

Bonne Chance

1

P.O.O (JAVA)

Ecole Supérieure

El Abdellaoui Saïd

de Technologie de Safi

Année universitaire 2020-2021

a) Enregistrer cet objet dans un fichier nommée etudiant.txt (utilise la classe ObjectOutputStream pour écrire un objet dans etudiant.txt et ObjectInputStream pour lire un objet)

Méthodes publiques principales de la File boolean createNewFile()

Création d’un nouveau fichier vide, et renvoie vrai si le nouveau fichier n'existait pas avant sa création.

boolean exists()

Renvoie vrai si et seulement si le fichier existe.

String getName()

Retourne le nom du fichier.

boolean 1sFile() String getPath()

Retourne vrai s’il s’agit d’un fichier et faux sinon. Retourne le chemin du fichier.

String getAbsolutePath()

Retourne le chemin absolu

int compare To(File pathname)

Comparaison des 2 chemins

boolean renameTo(File dest)

Renomme un fichier. retourne false si le file dest existe déjà, et le renommage n'est pas effectué. Renvoie vrai si le fichier peut être lu, et faux sinon. Marque le fichier en lecture seule. Renvoie vrai si le fichier peut être écrit, et faux sinon.

boolean canRead() boolean setReadOnly() boolean canWrite() boolean canExecute() boolean isLidden()

long lastModified()

Renvoie vrai si le fichier peut être exécuté, et faux sinon. Retourne true si le fichier est caché Sous Windows, le fichier est marqué "caché". Sous Unix le nom du fichier commence par un point Retourne la date de la dernière modification sous format de long. Date d = new Date(f .lastModified()) ;

boolean delete() void deleteOnExit()

Supprime le fichier. Supprime le fichier à la fin de l’exécution de la machine virtuelle.

long length()

La longueur du fichier, en octets.

static File[| ListRoots()

Liste les lecteurs. Un pour chaque lecteur sous Windows (X:) et "/" sous Unix.

String|] list()

Renvoie la liste des fichiers contenus dans le répertoire sous forme d’un tableau de chaînes. Retourne la liste des fichiers contenus dans le répertoire sous forme d’un tableau de fichiers. Crée un répertoire.

File[] listFiles() boolean mkdir() boolean mkdirs()

boolean isDirectory()

Crée un répertoire, et tous ses parents nécessaires. L'appel de mkdir avec un File constitué de "\" retourne false. Exemple: "D:/Cours]ava/PaquetES" Retourne vrai s’il s’agit d’un répertoire et faux sinon.

Bonne Chance

2

P.O.O (JAVA)

El Abdellaoui Saïd

Ecole Supérieure de Technologie de Safi

Année universitaire 2020-2021

Méthodes publiques principales de la classe OutputStream protected void finalize() void write(byte[] ary) void write(byte[] ary, int off, int len) void write(int b) FileChannel getChannel() FileDescriptor getFD() void close()

Il est utilisé pour nettoyer la connexion avec le flux de sortie du fichier. Il est utilisé pour écrire array.length octets du tableau d'octets dans le flux de sortie du fichier. Il est utilisé pour écrire len octets à partir du tableau d'octets en commençant par offset dans le flux de sortie du fichier. Il est utilisé pour écrire l'octet spécifié dans le flux de sortie du fichier. Il est utilisé pour renvoyer l'objet de canal de fichier associé au flux de sortie du fichier. Il est utilisé pour renvoyer le descripteur de fichier associé au flux. Il est utilisé pour fermer le flux.

Méthodes publiques principales de la classe InputStream

int available()

int read() int read(byte[] b) int read(byte[] b, int off, int len) long skip(long x)

Il est utilisé pour renvoyer le nombre estimé d'octets pouvant être lus à partir du flux d'entrée. Il est utilisé pour lire l'octet de données du flux d'entrée. Il est utilisé pour lire jusqu’à b.length octets de données à partir du flux d’entrée. Il est utilisé pour lire jusqu'à len octets de données du flux d'entrée.

FileDescriptor getFD()

Il est utilisé pour ignorer et supprimer x octets de données du flux d'entrée. Il est utilisé pour renvoyer l'unique objet FileChannel associé au flux d'entrée de fichier. Il est utilisé pour renvoyer l'objet FileDescriptor.

void close()

Il est utilisé pour fermer le flux.

FileChannel getChannel()

Méthodes Méthodes publiques publiques principales principales de la deObjectOutputStream la classe Reader boolean ready()

Indique si le flux est prêt à être lu

close()

ferme le flux et libère les ressources qui lui étaient associées

int read()

renvoie le caractère lu ou -1 si la fin du flux est atteinte.

int read(char[])

lire plusieurs caractères et les mettre dans un tableau de caractères.

Bonne Chance

3

P.O.O (JAVA)

El Abdellaoui Saïd

Ecole Supérieure de Technologie de Safi

Année universitaire 2020-2021

int read(char[], int, int)

lire plusieurs caractères. Elle attend en paramètre : un tableau de caractères qui contiendra les caractères lus, l'indice du premier élément du tableau qui recevra le premier caractère et le nombre de caractères à lire. Elle renvoie le nombre de caractères lus ou -1 si aucun caractère n'a été lu. Le tableau de caractères contient les caractères lus.

write(int)

écrire le caractère en paramètre dans le flux.

write(char[])

écrire le tableau de caractères en paramètre dans le flux.

write(char[], int, int)

écrire plusieurs caractères. Elle attend en paramètres : un tableau de caractères, l'indice du premier caractère et le nombre de caractères à écrire. écrire la chaîne de caractères en paramètre dans le flux

write(String) write(String, int, int)

close()

FileReader(String)

écrire une portion d'une chaîne de caractères. Elle attend en paramètre : une chaîne de caractères, l'indice du premier caractère et le nombre de caractères à écrire. ferme le flux et libère les ressources qui lui étaient associées

FileReader(File)

Créer un flux en lecture vers le fichier dont le nom est précisé en paramètre. Le même mais le fichier est précisé avec un objet de type File.

close()

ferme le flux et libère les ressources qui lui étaient associées

Méthodes publiques principales de la classe FileReader FileWriter(String)

Si le nom du fichier précisé n'existe pas alors le fichier sera créé. S'il existe et qu'il contient des données celles-ci seront écrasées.

FileWriter(File)

Le même mais le fichier est précisé avec un objet de type File.

FileWriter(String, boolean)

Le booléen permet de préciser si les données seront ajoutées au fichier (valeur true) ou écraseront les données existantes (valeur false) ferme le flux et libère les ressources qui lui étaient associées

close()

Méthodes publiques principales de la classe FileWriter FileWriter(String) FileWriter(File) FileWriter(String, boolean) String readLine()

Si le nom du fichier précisé n'existe pas alors le fichier sera créé. S'il existe et qu'il contient des données celles-ci seront écrasées. Le même mais le fichier est précisé avec un objet de type File.

Bonne Chance

Le booléen permet de préciser si les données seront ajoutées au fichier (valeur true) ou écraseront les données existantes (valeur false) lire une ligne de caractères dans le flux. Une ligne est une suite de

4

Méthodes publiques principales de la classe BufferedWriter

P.O.O (JAVA)

Ecole Supérieure

El Abdellaoui Saïd

de Technologie de Safi

Année universitaire 2020-2021

caractères qui se termine par un retour chariot '\r' ou un saut de ligne '\n' ou les deux. ferme le flux et libère les ressources qui lui étaient associées

close()

BufferedWriter(Writer)

Le paramètre fourni doit correspondre au flux dans lequel les données sont écrites. BufferedWriter(Writer, int) L’entier en paramètre permet de préciser la taille du buffer. Il doit être positif sinon une exception IllegalArgumentException est levée. flush() Vide le tampon en écrivant les données dans le flux. newLine() Écrire un séparateur de ligne dans le flux close()

ferme le flux et libère les ressources qui lui étaient associées

Méthodes publiques principales de la classe BufferedReader BufferedReader(Reader) BufferedReader(Reader, int)

Le paramètre fourni doit correspondre au flux à lire. L'entier en paramètre permet de préciser la taille du buffer. Il doit être positif sinon une exception de type IllegalArgumentException est levée.

close()

Ferme le flux et libère les ressources qui lui étaient associées

Méthodes publiques principales de la ObjectOutputStream ObjectOutputStream (OutputStream out)

Créer une instance qui va écrire le résultat de la sérialisation dans le flux fourni en paramètre

public final void writeObject (Object obj)

Sérialiser un objet

public void write(int data)

Ecrire un octet

public void write (byte b[])

Ecrire un ensemble d'octets

public void write(byte b[], int off, int len)

Ecrire un ensemble d'octets

public void flush()

Vider le tampon

public void close()

Fermer le flux

public public public public public public public public

void void void void void void void void

writeBoolean(boolean data) writeByte(int data) writeShort(int data) writeChar(int data) writeInt(int data) writeLong(long data) writeFloat(float data) writeDouble(double data)

Bonne Chance

Ecrire une donnée primitive dans le bloc de données (block data)

5

P.O.O (JAVA)

El Abdellaoui Saïd

Ecole Supérieure de Technologie de Safi

Année universitaire 2020-2021

public void writeBytes(String data) public void writeChars(String data) public void writeUTF(String data)

ObjectInputStream(InputStream out)

Ecrire une chaîne de caractères encodée en UTF-8 modifié Attend en paramètre un objet de type InputStream qui encapsule le flux dans lequel les données sérialisées seront lues.

Object readObject()

Désérialiser un objet

int read()

Lire un octet

int read(byte[] data, int offset, int length)

Lire un ensemble d'octets

boolean readBoolean() byte readByte() int readUnsignedByte() short readShort() int readUnsignedShort() char readChar() int readInt() long readLong() float readFloat() double readDouble() void close() String readUTF()

Lecture d'une donnée primitive dans le bloc de données (block data)

Fermer le flux Lire une chaîne de caractères encodée en UTF-8 modifié

Bonne Chance

6