Prochaine révision | Révision précédente Prochaine révisionLes deux révisions suivantes |
enseignement:d14:tp:tp4 [2014/01/28 10:31] – modification externe 127.0.0.1 | enseignement:d14:tp:tp4 [2014/09/30 09:28] – Emmanuel Bruno |
---|
====== TP4 - Entrées/Sorties et IHM ====== | ====== D14 - TP4 - Entrées/Sorties et IHM ====== |
| |
===== Objectif ===== | ===== Objectif ===== |
http://download.oracle.com/javase/tutorial/essential/io/index.html | http://download.oracle.com/javase/tutorial/essential/io/index.html |
| |
En vous servant tu TP sur les animaux : | En vous servant tu TP sur les animaux (ou de celui sur la Bibliothèque en remplacent les Chien par des Livres ou des Ordinateurs Portables) mettez en place les éléments suivants : |
* Ajouter une méthode ''void sauverChien(Collection c, String fichier)'' et une méthode ''sauverChien(OutputStream os)'' à la classe Chien qui sauvegarde l'état interne d'un chien dans un fichier en écrivant les types primitifs directement en binaire dans un fichier. | ==== Input et Output Stream ==== |
* Ajouter une méthode ''Collection restaurerChien(String fichier)'' à la classe Chien qui crée une collection d’instances de Chien à partir des informations stockées dans un fichier. | * Ajouter une méthode ''void sauverChiens(Collection c, String fichier)'' et une méthode ''sauverChien(OutputStream os)'' à la classe Chien qui sauvegarde l'état interne d'un chien dans un fichier en écrivant les types primitifs directement en binaire dans un fichier. **Attention, méthodes d'instances ou de classe ?** |
| * Ajouter deux méthodes ''Collection restaurerChiens(String fichier)'' et ''Collection restaurerChiens(InputStream in)'' à la classe Chien qui crée une collection d’instances de Chien à partir des informations stockées dans un fichier ou dans un inputstream. |
* Modifier les méthodes précédentes pour qu'un tampon soit utilisé. | * Modifier les méthodes précédentes pour qu'un tampon soit utilisé. |
* Modifier les méthodes précédentes pour que le fichier soit compressé. | * Modifier les méthodes précédentes pour que le fichier soit compressé. |
| |
| ==== Sérialisation classique ==== |
* Créer les méthodes ''void sauverChien2(Collection c, String fichier)'' et | * Créer les méthodes ''void sauverChien2(Collection c, String fichier)'' et |
''Collection restaurerChien2(String fichier)'' qui font la même chose en utilisant la sérialisation. | ''Collection restaurerChien2(String fichier)'' qui font la même chose en utilisant la sérialisation. |
| |
| ==== Les socket en Java ==== |
* En utilisant la classe ''Socket'', créer un classe ''Client'' (qui ouvre une connexion vers le serveur et y sérialise des objets) et une classe ''Serveur'' qui attend un flux d'objets sérialisés, qui les désérialise et les affiche sur la console. | * En utilisant la classe ''Socket'', créer un classe ''Client'' (qui ouvre une connexion vers le serveur et y sérialise des objets) et une classe ''Serveur'' qui attend un flux d'objets sérialisés, qui les désérialise et les affiche sur la console. |
| |
| ==== Pour aller plus loin ==== |
| Pour permettre ma sérialisation portable en applications hétérogènes (entre des applications Java, C++, Web, ..) il faut s'affranchir de deux problèmes : le format d'échange des données et le protocole réseau. |
| |
| Pour cela le couple JSON/Websocket est un bon choix : |
| http://bruno.lsis.univ-tln.fr/projects/simplewebsocket |
| |
| Essayez de mettre en place une extension de la bibliothèque qui offre une API Web pour utiliser la bibliothèque. |
| |
===== Les IHM ===== | ===== Les IHM ===== |
| |
{{tag>D14 TP Java E/S IHM}} | {{tag>D14 TP Java E/S IHM}} |
| ---- dataentry page ---- |
| type : TP |
| enseignement_tags : D14 |
| technologie_tags : Java |
| theme_tags ; E/S,IHM |
| ---- |
---- struct data ---- | ---- struct data ---- |
---- | ---- |
| |