Vous êtes sur la page 1sur 3

JAVA TP4 IUT GTR

TP JAVA 4 (entrées/sorties )
Entrées/sorties : Rappels de cours
Avant de commencer : Voir le rappel de cours

Partie 4 : Les entrées / sorties CLAVIER


Exercice 1 (retour sur le TP1)
Ecrire un programme qui affiche un « faux » prompt (comme celui de DOS ou UNIX) affichant
« PROMPT> », et qui mémorise toutes les saisies de l‘utilisateur jusqu'à ce qu’il arrête par un
caractère spécial, et qui enfin les restitue dans l’ordre. Voici un exemple d’exécution :
Tapez quelques lignes terminees par un point ('.'):
PROMPT> tu es la?
PROMPT> voilà.
PROMPT> et bien ?
--- Vous avez tapé:
tu es la?
voilà
et bien ?
--- Merci bien!
Note : vous pouvez utiliser la classe StringBuffer(ou un tableau de String) pour le stockage et
DataInputStream ou BufferedReader pour la lecture.

Aide (permet de lire sur stdin, voir la javadoc sur le site de sun) :
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
//ensuite
String ligneTapee = input.readLine();

Note: il est nécessaire de faire un import de java.io.*


il est aussi nécessaire de faire un try / catch autour du readLine.

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 à
Page 1 sur 3 le 11/4/16
JAVA TP4 IUT GTR
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 recevoir 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 :
• « h » : il renvoie l’heure système
• « x » : il coupe la connexion (déconnecte le client)

Page 2 sur 3 le 11/4/16


JAVA TP4 IUT GTR
• « s » : il s’arrête lui-même ( shutdown )

Page 3 sur 3 le 11/4/16

Vous aimerez peut-être aussi