Module I5 - Java RT Gestion des flux Objectif : Mise en oeuvre des

publicité
Module I5 - Java
RT
Gestion des flux
Objectif : Mise en oeuvre des mécanismes de flux, et filtres associés
I - Gestion de flux de caractères
1.1 - Création de l'application de base
Créez une nouvelleapplication contenant le code suivant :
import java.io.*;
public class TestFlux {
public static void main(String[] args) throws IOException {
BufferedReader clavier = new BufferedReader(
new InputStreamReader(System.in));
String s;
boolean fin=false;
while (!fin) {
s=clavier.readLine();
System.out.println(s);
if (s.length()==0)
fin =true;
}
}
}
=> Que réalise ce code ?
1.2 - Création d'un fichier
Nous souhaitons maintenant créer une application permettant d'écrire dans un fichier texte,
les messages saisis au clavier.
L'accès à un fichier s'effectue à l'aide du code suivant :
String s=new String();
// Chaîne de caractères à écrire
...
try {
BufferedWriter fichier = new BufferedWriter(
new FileWriter("texte.tp"));
fichier.write(s,0,s.length());
fichier.close();
}
catch(IOException e) {
System.out.println("Erreur fichier : " + e.toString() );
}
Modifier votre code précédent, afin d'écrire dans le fichier, les messages saisis au clavier.
L'application doit s'interrompre lorsqu'une ligne vide est saisie.
- Validez votre application en affichant le contenu du fichier à l'aide de notepad (ou equivalent)
=> Que constatez-vous vis à vis de la mise en forme du texte contenu dans le fichier ?
- Cherchez en utilisant l'aide Java de "JCreator", une méhode permettant de créer une nouvelle ligne
dans le fichier de destination.
=> Que se passe-t-il si vous relancez l'application, alors que le fichier texte existe déjà ?
IUT Elbeuf
1-3
S.H. - TP04-02
Module I5 - Java
RT
Gestion des flux
- Apportez à votre application, la modification suivante : FileWriter("texte.tp",true)
Comparez avec le fonctionnement précédent.
=> Que se passe-t-il si vous supprimez la commande "fichier.close()" à la fin de l'application ?
1.3 - Lecture de fichier
En vous inspirant fortement de l'application précédente, créez une nouvelle application
permettant cette fois de lire puis d'afficher à l'écran, le contenu d'un fichier texte.
Vous exploiterez l'aide Java de "Jcreator" pour obtenir la syntaxe exacte des méthodes à
utiliser.
II - Fichier de données
2.1 - Enregistrement de données
- Créez une application, avec des variables au format suivants : int, float, double, boolean, char
- Dans votre application, initialisez toutes ces variables, et affichez leurs valeurs à l'écran.
- Inspirez-vous de vos applications précédentes pour pouvoir enregistrer vos informations dans un
fichier.
Utilisez le filtre : DataOuputStream, et ses méthodes writeXxx (voir aide Java)
...DataOutputStream(new BufferedOutputStream(new FileOutputStream("Data.tp4")));
=> Qu'obtenez vous si vous utilisez notepad pour afficher le contenu du fichier ?
2.2 - Lecture de données
Complétez votre application précédente pour obtenir la séquence suivante :
- Déclaration de variables de type primaire
- Initialisation des variables
- Enregistrement des valeurs des variables dans un fichier
- Réinitialisation des variables
- Lecture des variables dans le fichier
- Affichage des valeurs des variables après relecture
=> Obtenez-vous le résultat escompté ?
=> Que se passe-t-il si vous inversez 2 variables lors de la lecture ?
=> Est-il possible à partir de cette application de déterminer l'espace occupé en mémoire par les
variables de type primaire ? (détailler la procédure à appliquer)
IUT Elbeuf
2-3
S.H. - TP04-02
Module I5 - Java
RT
Gestion des flux
III - Etude avancée des flux
3.1 - Accès simultanné au même fichier
Reprenez l'application initiale (§ 1) et modifiez son organisation afin d'avoir simultannément
une écriture et une lecture dans le même fichier.
=> L'ordre des opérations a-t-il une incidence sur le fonctionnement ?
=> Que se passe-t-il si le fichier n'existe pas lors du lancement de l'application ?
3.2 - Fichiers compressés
- Recherchez sur votre poste un fichier au format texte de dimension suffisante (> 1 Ko)
- Reprenez la version précédente de votre application, et créez une application qui recopie ce fichier
sous un autre nom
Validez son fonctionnement
- Modifiez alors l'application pour utiliser le filtre "ZipOutputStream".
=> Quelle est alors la dimension du fichier ?
=> Pouvez-vous lire son contenu avec notepad ?
- Effectuez la même opération avec cette fois le filtre "GzipOutputStream", et comparez vos
résultats.
IV - Gestion de fichiers
Java propose également de nombreuses méthodes permettant de géréer les fichiers et
répertoires. Consulter l'aide pour pouvoir réaliser les opérations suivantes :
- Création d'un dossier
- Affichage du contenu d'un répertoire (liste des fichiers existants)
- Suppression d'un fichier dans un répertoire
- Changement de nom d'un fichier
...
IUT Elbeuf
3-3
S.H. - TP04-02
Téléchargement