Java. Exception et Entrée/Sortie



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

Flux de données Lecture/Ecriture Fichiers

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

Programmer en JAVA. par Tama

Cours 14 Les fichiers

Développement Logiciel

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

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

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

PROGRAMMATION PAR OBJETS

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

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

Programmation Internet en Java

Programmation client-serveur sockets - RPC

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

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

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

Le modèle client-serveur

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

4. Groupement d objets

Programmation Par Objets

Chapitre 10. Les interfaces Comparable et Comparator 1

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

Java 1.5 : principales nouveautés

Langage à objets : JAVA (1)

Auto-évaluation Programmation en Java

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

LOG4430 : Architecture logicielle et conception avancée

le minimum pour communiquer par réseau (sans toutefois y comprendre grand chose)

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Java Licence Professionnelle CISII,

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

Introduction au langage Java

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

Corrigé des exercices sur les références

INF 321 : mémento de la syntaxe de Java

M1 MIAGE - Réseau TP1

Initiation à la programmation orientée-objet avec le langage Java

ACTIVITÉ DE PROGRAMMATION

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

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

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

Introduction : les processus. Introduction : les threads. Plan

RMI le langage Java XII-1 JMF

Programmation avec des objets : Cours 7. Menu du jour

Programmation en Java IUT GEII (MC-II1) 1

Synchro et Threads Java TM

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

Cours 6 : Programmation répartie

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

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

INITIATION AU LANGAGE JAVA

Programmation Réseau SSH et TLS (aka SSL)

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

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

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

Généricité. en Java. (polymorphisme paramétrique) Philippe GENOUD UJF Janvier

Programmation système de commandes en C

Programmation Objet 2

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

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

Création d un service web avec NetBeans 5.5 et SJAS 9

Programmation système I Les entrées/sorties

Programmation Objet Java Correction

Java Database Connectivity (JDBC) - Langage SQL

La gestion des exceptions

Principes des Architectures Middleware version 2.0

KL5121. Pour activer des sorties en fonction de la position d'un codeur

Java avancé Objectifs. version support 1.2

Un ordonnanceur stupide

Calcul Parallèle. Cours 5 - JAVA RMI

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

2. Comprendre les définitions de classes

Le Modèle de Sécurité dans JAVA

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

OpenPaaS Le réseau social d'entreprise

Remote Method Invocation Les classes implémentant Serializable

Introduction à la programmation concurrente


INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

RAPPORT DE STAGE DE TROISIEME ANNEE EFFECTUE A

2 Chapitre 1 Introduction

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

Programmation par les Objets en Java

Surveiller sa maison via son Smartphone sous Android

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Desktop Intégration. Rémi Forax

Java Licence Professionnelle CISII,

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

Solutions du chapitre 4

Implementing a simple RMI Application over the Internet (using and comparing HTTP tunneling, RMI Proxy)

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

Une introduction à Java

TP Programmation Java / JDBC / Oracle

Objets et Programmation. origine des langages orientés-objet

Support de cours et TD Programmation Orientée Objet

Transcription:

Java Exception et Entrée/Sortie

Plan Exception Principe, utilisation, création Paquetage java.io Notion de flots Organisation du paquetage Flots d octets Flots de caractères Exceptions

Principe Définition : «An exception is an event that occurs during the execution of a program that disrupts the normal flow of instructions.» (sun.com tutorial) Objectif : Programmer explicitement la gestion des erreurs bibliothèque d exceptions Résultats : la gestion des erreurs est distincte du code de l application. un mécanisme dédié à la propagation / capture des erreurs une typologie des erreurs

Exception Principe : Classe Définir une classe. classe mère : classe Exception ou une de ses sous classes.

Exception Déclenchement Création MonException me = new MonException( ); Lancement throws me; Faire suivre <visibilité> <type> mamethode ( ) throw MonException{ }

Exception try{ Capture // bloc dont on souhaite contrôler l exécution. } catch (MonException x) { code à exécuter si l exception mon Exception a été détecté. } finally{ // code réalisé dans tous les cas. }

Exemple public int compareto(object o) throws ClassCastException{ int comparaison = -2; if (o instanceof Figure){ Figure f = (Figure)o; if (f.perimetre() > perimetre()) comparaison = -1; else if (f.perimetre() < perimetre()) comparaison = 1; else comparaison = 0; }else throw(new ClassCastException ()); return comparaison; }

Plan Exception Principe, utilisation, création Paquetage java.io Notion de flots Organisation du paquetage Flots d octets Flots de caractères Exceptions

Principe les échanges de données entre un programme et l extérieur (autre programme, fichier, réseau) sont effectués par un «flot» de données. Un flot permet de transporter séquentiellement des données. Les données sont transportées une par une (ou groupe par groupe), de la

Principe Sources et destinations de flots Fichier, socket, pipe, clavier Cycle : Ouverture flot Tant qu il y a des données à lire (ou à écrire) on lit (ou on écrit) la donnée suivante dans le flot Fermeture du flot Types de flots: flots d octets flots de caractères

Flots d octets

InputStream classe abstraite Principales méthodes : void close() ferme le flux et libère les ressources abstract int read() lit le prochain octet sur le flux. int read(byte[] b) stock le résultat de la lecture dans un tableau void mark(int readlimit) et void reset() certains flux acceptent le marquage de positions pour arrêter une lecture et la reprendre au même endroit long skip(long n) ne pas lire les n octets suivants.

Principe Reconnaître un type de source ou de destination concrètes : Exemple : pour un fichier File{In/Out}putStream (un flot d octets) File{Reader/Writer} : (un flot de caractères) «Décorer» le traitement du flot Exemple : ajoute un buffer Buffered{In/Out}putStream (un flot d octets)

Flux d octets en entrée Classes Classes utilisées pour la communication FileInputStream lecture de fichiers octets par octets. PipedInputStream récupère des données provenant d'un flux de sortie (cf. PipedOutputStream). ByteArrayInputStream lit des données dans un tampon structuré sous forme d'un array. Classes utilisées pour le traitement SequenceInputStream concaténation d'une énumération de plusieurs flux d'entrée en un seul flux d'entrée. StringBufferInputStream lecture d'une String (Sun déconseille son utilisation et préconise son remplacement par StringReader). ObjectInputStream lecture d'objets Java. FilterInputStream lit à partir d'un InputStream quelconque des données, en "filtrant" certaines données.

Flux d octets en sortie Classes Classes utilisées pour la communication FileOutputStream écriture de fichiers octets par octets. PipedOutputStream envoie des données vers un flux d'entrée ( cf. PipedInputStream ). ByteArrayOutputStream écrit des données dans un tampon structuré sous forme d'un array. Classes utilisées pour le traitement ObjectOutputStream écriture d'objets Java lisibles avec ObjectInputStream. FilterOutputStream écrit à partir d'un OutputStream quelconque des données, en "filtrant" certaines données.

Exemple fichier Création du flux depuis un fichier. FileInputStream fis=new FileInputStream("fichier"); création d une décoration : un buffer en lecture BufferedInputStream bis=new BufferedInputStream(fis); création d une décoration : lecture des types primitifs en standard. DataInputStream dis = new DataInputStream(bis); Résultat : DataInputStream dis = new DataInputStream(new BufferedInputStream (new FileInputStream ("fichier")))

Exemple fichier try{ // création du fichier et du flot associé. File f0 = new File("source.txt"); DataOutputStream source = new DataOutputStream(new FileOutputStream (f0)); source.writeint(23); source.writechar('e'); source.close(); // lecture du fichier et du flot associé File f = new File("source.txt"); DataInputStream dis = new DataInputStream(new FileInputStream (f)); System.out.println(dis.readInt()); System.out.println(dis.readChar()); dis.close(); }catch (IOException e){ System.out.println(e); }

Flot de caractères

Flux en entrée BufferedReader lecture de caractères dans un tampon. CharArrayReader lit de caractères dans un tampon structuré sous forme d'un array. FileReader lecture de caractères dans un fichier texte. FilterReader lit à partir d'un Reader quelconque des caractères, en "filtrant" certaines caractères. InputStreamReader conversion de flux d'octets en flux de caractères (8 bits en 16 bits) LineNumberReader lecture de caractères dans un tampon (dérive de BufferedReader) avec comptage de lignes. PipedReader récupère des données provenant d'un flux de caractères en sortie (cf. PipedWriter). StringReader lecture de caractères à partir d'une Classe

StringWriter écriture de caractères dans une chaîne de type String. Flux en sortie Exemple BufferedWriter écriture de caractères dans un tampon. CharArrayWriterWriter écrit des caractères dans un tampon structuré sous forme d'un array. FileWriter écriture de caractères dans un fichier texte. FilterWriter écrit à partir d'un Reader quelconque des caractères, en "filtrant" certaines caractères. OutputStreamWriter conversion de flux d'octets en flux de caractères (8 bits en 16 bits) PipedWriter envoie des données vers un flux d'entrée (cf. PipedReader).

Exemple : fichier try{ // lecture du fichier et du flot associé File f = new File("source.txt"); BufferedReader source = new BufferedReader(new FileReader (f)); String ligne = source.readline(); while ( ligne!= null){ System.out.println(ligne); ligne = source.readline(); } }catch (IOException e){ System.out.println(e); }