TP JAVA 4 (entrées/sorties )

Entrées/sorties : Rappels de cours

Avant de commencer : Voir le rappel de cours

Entrées/sorties fichiers

 

Exercice 1

A/
Ecrire un programme « Ecrire » qui crée le fichier binaire (bytes) nommé "donnees.dat". Il tire au hasard une série de 14 nombres compris entre 0 et 32767 et les écrits dans le fichier.

Utiliser pour cela la méthode nextInt(int n) de la classe Random (java.util) qui retourne un entier entre 0 et n-1. vous pouvez aussi utiliser Math.random()

Ecrire un programme « Lire » qui lit le fichier binaire (bytes) nommé "donnees.dat" et qui affiche à l’écran la liste des valeurs.

B/
Modifier les programmes des question A et B pour éliminer la limitation de 14 nombres.

« Ecrire » devra recevoir en paramètre sur la ligne de commande le nombre de valeurs à générer vers le fichier, et devra recevoir également le nom du fichier sur la ligne de commande.

« Lire » devra également le nom du fichier sur la ligne de commande et lire tant qu'il y a des données dans le fichier.

Entrées/sorties réseau

 

Exercice 1 : écrire un client HTTP

 

A/ Ecrire un programme «clientHTTP » permettant de récupérer une page grâce à une requête HTTP GET sur un serveur Web de votre choix (client vu en cours, le code ne fait pas plus de 30 lignes).

La page sera affichée à l’écran. Vous pouvez mettre le nom du serveur et de la page « en dur » dans le source.

 

B/ Ecrire un programme permettant de récupérer une page identifiée par une URL passée en paramètre. Utiliser l’Objet « URL » du JDK qui dispose de getHost() et getPort() pour extraire les infos de connexion.

Exemple d’appel :

java clientHTTP http://localhost/index.html

 

Exercice 2 : Serveur Heure simple

 

A/

Ecrire un serveur TCP qui renvoie l’heure système à chaque fois qu’un client se connecte.

Testez le avec la commande telnet ( telnet ip port ).

Pour l’heure systeme vous pouvez utiliser Calendar (dans java.util) ou Date (dans java.util)  ou encore SimpleDateFormater (dans java.util).

 

Exemple d’appel :

 

                    Calendar cal = Calendar.getInstance();

                    String rep =  "\nIl est  " + cal.get(Calendar.HOUR) +

                                         "h  " + cal.get(Calendar.MINUTE) +

                                        "mn  " + cal.get(Calendar.SECOND) +  "s.";

 

                    //variante: avec une date

                    rep=new java.util.Date().toString();

B/

Etendre le serveur Heure pour qu’il attende des commandes du client :