Mise à niveau en Java



Documents pareils
Entrées / Sorties. Entrées / Sorties. Entrées/Sorties. System.out. Fonctionnement par flots (stream) Karima Boudaoud IUT- R&T. Terrain connu.

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

Flux de données Lecture/Ecriture Fichiers

Développement Logiciel

Programmer en JAVA. par Tama

Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.

Programmation Orientée Objet - Licence TIS CM8/9. Rappel sur la séance précédente. Lancelot Pecquet Lancelot.Pecquet@math.univ-poitiers.

PROGRAMMATION PAR OBJETS

Communication inter-processus (IPC) : tubes & sockets. exemples en C et en Java. F. Butelle

Synchro et Threads Java TM

Programmation Internet en Java

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Cahier des Charges du Projet Domotique. Choquet Mathieu Masson Jérôme Groupe 6. Domotique. p.1

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Programmation Par Objets

Cours 14 Les fichiers

Facultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object

Programmation client-serveur sockets - RPC

Auto-évaluation Programmation en Java

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

et se trouve popularisé rapidement pour ses possibilités de développement liés au Web. Les

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Programmation Objet Java Correction

Introduction au langage Java

Programmation Réseau SSH et TLS (aka SSL)

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Bases du langage. Historique Applications et applets Éléments de base du langage Classes et objets Les exceptions

Dis papa, c est quoi un bus logiciel réparti?

Programmation Objet 2

Java 1.5 : principales nouveautés

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

Package Java.util Classe générique

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Education Delivery Intelligent Tool

Un ordonnanceur stupide

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

INF 321 : mémento de la syntaxe de Java

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Java Licence Professionnelle CISII,

Plan du cours. Historique du langage Nouveautés de Java 7

Langage Java. Classe de première SI

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Java RMI. Arnaud Labourel Courriel: Université de Provence. 8 mars 2011

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

Une introduction à la technologie EJB (2/3)

4. Groupement d objets

Design patterns. Design patterns - définition. Design patterns - avantages

Remote Method Invocation (RMI)

Surveiller sa maison via son Smartphone sous Android

INITIATION AU LANGAGE JAVA

Projet de programmation (IK3) : TP n 1 Correction

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

Corrigé des exercices sur les références

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Premiers Pas en Programmation Objet : les Classes et les Objets

Introduction : les processus. Introduction : les threads. Plan

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

LOG4430 : Architecture logicielle et conception avancée

Support de cours et TD Programmation Orientée Objet

JAVA. Introduction à la programmation objet avec java 1/4. Nadir BOUSSOUKAIA

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

Travaux Pratiques : Lucène - Gestion d un index plein texte

Environnements de développement (intégrés)

Gestion distribuée (par sockets) de banque en Java

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

Java Licence Professionnelle CISII,

GESTION DES FICHIERS C/UNIX

Initiation à JAVA et à la programmation objet.

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Programmation système de commandes en C

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Modèle à composants. Daniel Hagimont. IRIT/ENSEEIHT 2 rue Charles Camichel - BP TOULOUSE CEDEX 7. Remerciements

Conventions d écriture et outils de mise au point

as Architecture des Systèmes d Information

COMPARAISONDESLANGAGESC, C++, JAVA ET

TD/TP PAC - Programmation n 3

Threads. Threads. USTL routier 1

Programmation avec des objets : Cours 7. Menu du jour

Langage à objets : JAVA (1)

Une introduction à Java

Programmation d application Bases de données avec Java

Le système de gestion des fichiers, les entrées/sorties.

Programmation système I Les entrées/sorties

Desktop Intégration. Rémi Forax

Calcul Parallèle. Cours 5 - JAVA RMI

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Le Modèle de Sécurité dans JAVA

Remote Method Invocation Les classes implémentant Serializable

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

Programmation en Java IUT GEII (MC-II1) 1

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Interfaces graphiques avec l API Swing

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

La gestion des exceptions

Transcription:

Mise à niveau en Java Cours 4 Stéphane Airiau Université Paris-Dauphine Cours 4 (Stéphane Airiau) Java 1

Entrée et sortie Cours 4 (Stéphane Airiau) Java 2

Entrée / sortie Entrée/sortie : échange de données entre le programme et une source : entrée : au clavier, lecture d un fichier, communication réseau sortie : sur la console, écriture d un fichier, envoi sur le réseau Java utilise des flux (stream en anglais) pour abstraire toutes ses opérations. de manière générale, on observera trois phases : 1- ouverture du flux 2- lecture/écriture du flux 3- fermeture du flux Cours 4 (Stéphane Airiau) Java 3

le package java.io (fragment) Object File InputStream Reader OutputStream Writer FileInputStream ObjectInputStream BufferedReader InputStreamReader FileOutputStream ObjectOutputStream BufferedWriter OutputStreamWriter FileReader FileWriter Cours 4 (Stéphane Airiau) Java 4

La classe File La classe File permet d obetenir des informations sur les fichiers nom, chemin absolu, répertoire parent s il existe un fichier d un nom donné en paramètre droit : l utilisateur a-t-il le droit de lire ou d écrire dans le fichier la nature de l objet (fichier, répertoire) la taille du fichier obtenir la liste des fichiers effacer un fichier créer un répertoire accéder au fichier pour le lire ou l écrire Cours 4 (Stéphane Airiau) Java 5

Object File InputStream Reader OutputStream Writer FileInputStream ObjectInputStream BufferedReader InputStreamReader FileOutputStream ObjectOutputStream BufferedWriter OutputStreamWriter FileReader FileWriter Cours 4 (Stéphane Airiau) Java 6

Flux Les flux transportent des bytes ou des char. Direction du Flux : objets qui gèrent des flux d entrée : in InputStream, FileInputStream, FileInputStream objets qui gèrent des flux de sortie : out OutputStream, FileOutputStream, FileOutputStream Source du flux : fichiers : on pourra avoir des flux vers ou à partir de fichiers FileInputStream et FileOutputStream objets : on pourra envoyer/recevoir un objet via un flux ObjectInputStream et ObjectOutputStream Cours 4 (Stéphane Airiau) Java 7

InputStream flux de bytes 0100101101101 écriture h e l l o écriture m y n a Processus de lecture et d écriture InputStreamReader lecture et transformation bytes char BufferedWriter stockage mémoire tampon écriture dans un flux de caractères char Lecture flux de caractères h e l l o \n Ecriture flux de caractères h e l l o \n m y BufferedReader stockage dans un tampon OutputStreamWriter Selon le type de la source ou de la destination (fichier, objet), on utilisera FileReader à la place de InputStreamReader tampon mémoire h e l l o m y n a OutputStream flux de bytes 0100101101101 FileOutputStream ou ObjectOutputStream comme implémentation de la classe abstraite OutputStream Cours 4 (Stéphane Airiau) Java 8

Exemple : Lecture d un fichier Lecture du premier octet d un fichier 1 FileInputStream fis = 2 new FileInputStream(new File( ex.txt )); 3 byte[] huitlettres = new byte[8]; 4 int nblettrelues = fis.read(huitlettres); 5 for(int i=0;i<8;i++) 6 System.out.println(Byte.toString(huitLettres[i])); Affiche un fichier sur la console 1 BufferedReader reader = 2 new BufferedReader(new FileReader(new File( ex.txt ))); 3 String line = reader.readline(); 4 while(line!= null){ 5 System.out.println(line); 6 line = reader.readline(); 7 } 8 reader.close(); N.B. Les codes ne sont pas corrects (gestion des exceptions) Cours 4 (Stéphane Airiau) Java 9

Envoi d objets But : envoyer toute l information d un objet mécanisme de «sérialisation» la classe doit implémenter l interface Serializable l interface Serializable n a pas de méthodes : c est juste un marqueur. Java transforme l objet automatiquement en un code pas lisible pour les humains NB : Si un attribut de la classe est un objet d une classe MaClasse MaClasse est «sérialisable» : MaClasse n est pas «sérialisable» : on peut utiliser le mot-clé transient pour indiquer de ne pas enregistrer cet attribut Cours 4 (Stéphane Airiau) Java 10

Exemple 1 IrreductibleGaulois panoramix = 2 new IrreductibleGaulois("Panoramix", 1.75); 3 4 ObjectOutputStream oos = 5 new ObjectOutputStream( 6 new FileOutputStream( 7 new File("panoramix.txt"))); 8 9 oos.writeobject(panoramix); 10 oos.close(); 11 12 ObjectInputStream ois = 13 new ObjectInputStream( 14 new FileInputStream( 15 new File("panoramix.txt"))); 16 17 IrreductibleGaulois copypanoramix = 18 (IrreductibleGaulois) ois.readobject(); 19 System.out.println(copyPanoramix.nom); 20 ois.close(); N.B. Le code n est pas correct (gestion des exceptions) Cours 4 (Stéphane Airiau) Java 11

Lire depuis la console, afficher sur la console System.in : entrée «standard» objet de type InputStream System.out : sortie «standard» objet de type PrintStream qui hérite de OutputStream La classe Scanner permet de récupérer ce que vous tapez 1 Scanner scan = new Scanner(System.in); 2 int n = scan.nextint(); 3 double x = scan.nextdouble(); 4 String s = scan.nextline(); Cours 4 (Stéphane Airiau) Java 12

Gestion des Exceptions Cours 4 (Stéphane Airiau) Java 13

Gestion des erreurs Java possède un mécanisme de gestion des erreurs, ce qui permet de renforcer la sécurité du code. On peut avoir différents niveaux de problèmes : java.lang.object java.lang.throwable java.lang.error java.lang.exception java.lang.runtimeexception Error représente une erreur grave intervenue dans la machine virtuelle (par exemple OutOfMemory) La classe Exception représente des erreurs moins grave le développeur a la possibilité de gérer de telles erreurs et éviter que l application ne se termine Cours 4 (Stéphane Airiau) Java 14

Cours Dans 4 (Stéphane cesairiau) exemples, l application s est terminée! Java 15 Levée d exception Lors de la détection d une erreur un objet qui hérite de la classe Exception est créé ce qui s appelle lever une exception l exception est propagé à travers la pile d exécution jusqu à ce qu elle soit traitée. 1 int[] tab = new int[5]; 2 tab[5]=0; Exception in thread "main" java.lang.arrayindexoutofboundsexception: 5 at Personnage.main(Personnage.java:2) 1 int d=10,t1=5,t2=5; 2 System.out.println("vitesse:" + d / (t2-t1)); Exception in thread "main" java.lang.arithmeticexception: / by zero at Personnage.main(Personnage.java:21)

Le bloc try... catch bloc try : le code qui est susceptible de produire des erreurs on récupère l exception créée avec le catch. on peut avoir plusieurs blocs catch pour capturer des erreurs de types différentes. en option, on peut ajouter un bloc finally qui sera toujours exécuté (qu une exception ait été levée ou non) Lorsqu une erreur survient dans le bloc try, la suite des instructions du bloc est abandonnée les clauses catch sont testés séquentiellement le premier bloc catch correspondant à l erreur est exécuté. Cours 4 (Stéphane Airiau) Java 16

Exemple 1 int d=10,t1=5,t2=5; 2 try{ 3 System.out.println("vitesse:" + d / (t2-t1)); 4 } 5 catch(arithmeticexception e){ 6 System.out.println( vitesse non valide ); 7 } 8 catch(exception e){ 9 e.printstacktrace(); 10 } Cours 4 (Stéphane Airiau) Java 17

Créer sa propre exception La classe MyException hérite de la classe Exception. Une méthode qui risque lever une exception de type MyException l indique à l aide de throws 1 public class PotionMagiqueException extends Exception { 2 public PotionMagiqueException(){ 3 super(); 4 } 5 public PotionMagiqueException(String s){ 6 super(s); 7 } 8 } 9 10 public class GourdePotionMagique { 11 private int quantite, gorgee=2,contenance=20; 12 public GourdePotionMagique(){ quantite=0;} 13 14 public boolean bois() throws PotionMagiqueException { 15 if (quantite-gorgee <0) 16 throw new PotionMagiqueException 17 ( pas assez de potion magique! ); 18 } 19 } Cours 4 (Stéphane Airiau) Java 18

Exceptions et entrée/sortie 1 try { 2 FileInputStream fis = new FileInputStream(new File("test.txt")); 3 byte[] buf = new byte[8]; 4 int nbread = fis.read(buf); 5 System.out.println("nb bytes read: " + nbread); 6 for (int i=0;i<8;i++) 7 System.out.println(Byte.toString(buf[i])); 8 fis.close(); 9 10 BufferedReader reader = 11 new BufferedReader(new FileReader(new File("test.txt"))); 12 String line = reader.readline(); 13 while (line!= null){ 14 System.out.println(line); 15 line = reader.readline(); 16 } 17 reader.close(); 18 } catch (FileNotFoundException e) { 19 e.printstacktrace(); 20 } 21 catch(ioexception e){ 22 e.printstacktrace(); 23 } Cours 4 (Stéphane Airiau) Java 19

Ce dont on n a pas parlé générer de la documentation avec javadoc packages et imports programmation multi-thread parallélisme, concurrence Interfaces graphiques, gestion des évènements Communication avec une base de données Tester le code JUnit Cours 4 (Stéphane Airiau) Java 20