Fichiers et entrées-sorties en Java File and Input-ouput in Java J.M. Vanel Conseil informatique, architecture 2005-12.

Slides:



Advertisements
Présentations similaires
SAX Simple API for XML. Généralités API non standard développé par les membres du forum XML-DEV Parseur XML – Orienté événement – Parsing dynamique SAX.
Advertisements

Sérialisation des objets
Flots et Sérialisation des objets
Au programme du jour …. Ce que vous navez pas encore vu Constantes et variables de classe Main et Tests Utilisation de lAPI Existence des packages Existence.
Voisin-Polian : Introduction à Java 1 Introduction à Java - les flots - Frédéric VOISIN – Nicole POLIAN FIIFO - « Remise à Niveau »
Plan du cours La sérialisation: – comment stocker et restaurer les Objets? Les interfaces graphiques et la programmation évènementielle. –Comment concevoir.
Les technologies XML Cours 3 : Les APIS XML Janvier Version 1.0 -
JAV - TD 6 Structures de données JAVA
COURS DE PROGRAMMATION ORIENTEE OBJET :
Structures de données et algorithmes – TP2
1 Cours JAVA / Y.Laborde Java : Les FLUX de données Les flux de données introduction les flux binaires les flux binaires de sortie (FBS) les flux binaires.
Système d’Exploitation
Les fichiers binaires en C++
1 Part3 3 2 Exception Générée par un problème de programme Objet définissant une erreur Peut être saisie et traitée par un programme Une erreur: situation.
Une nouvelle structure de données : les tableaux
Java, les objets : tout de suite ! Rassembler, grouper les objets
1212 Entrée et sortie de fichiers Objectifs À la fin de ce cours, vous serez capables de : • Lire à partir de la console • Écrire sur la console.
J201 (JOC) Java Avancé juin 2007 ~ Brigitte Groléas ~
Projet de semestre Responsable :Prof. Claude Petitpierre Superviseur :Duy Vo Duc.
1 Fichers Binaires, Accès Direct et Objets. 2 Données binaires. Il s'agit ici de lire et écrire des données binaires par opposition à du texte. Pour ce.
Cours Les flux ou streams. Cours 162 Flux : objet possédant des méthodes capables de lire ou écrire des flots d’octets sur tout support (mémoire,
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Entrées / Sorties.
Les sockets.
1 Chapitre III (~70 transparents) Compléments. 2 Au sommaire de ce chapitre 1. Les fichiers Les classes utilitaires
Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java
Fichier et Stream d’Entrée-Sortie IFT1025, Programmation 2 Jian-Yun Nie Version court par Douglas Eck; Version
JAVA Les Entrées-sorties
Informatique 2A Langage C 4ème séance
Stratégies de persistence pour une application Java J.M. Vanel Mars 2006 Version 5 Historique V3Un autre OODBMS : db4o; détails Stockage sur Fichiers V4CRUD.
Composants Matériels de l'Ordinateur Plan du cours : Ordinateurs et applications Types d'ordinateurs Représentation binaires des données Composants et.
Système de gestion d'entrées pour un cinéma Scanvion Michel – Etudiant 4.
Tarak Chaari, Stéphane Frénot, Frédérique Laforest, Frédéric Le-Mouël JAV 1 JAV - TD 7 Les entrées / sorties JAVA Les Flux Le package java.io La gestion.
Formation web sémantique J.M. Vanel RDF, RDF Schema, SPARQL, OWL, Modélisation, moteurs de règles Licence Creative Commons.
1 Java Avancé Input/Output Rémi Forax
1 Java Avancé Input/Output Rémi Forax
Stéphane Frénot, Frederique Laforest, Frédéric Le-Mouël IJA 1 TD 6 IJA Structures de données JAVA.
1 Modèles de conception métier J.M. Vanel Architecture en couches – Présentation – Logique applicative – Modèle Métier – Accès aux données – Stockage.
Les instructions pour la création de cette présentation sont incluses dans la page de commentaires de chaque diapositive. Dans le menu Affichage, cliquez.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
Javadoc Javadoc permet la création d'une documentation de vos travaux, au format HTML, avec liens... La encore (cohérence du langage Java !!), l'idée est.
1 Programmation en C++ IO en C++/SL ● Standard Library ● Types, objets pour IO ● L'entrée de clavier ● Sortie à l'écran ● Fichiers.
Java – Les entrées / sorties
Java et sockets TCP.
Langages de programmation TP6
JAVA.
Pas de variable globale
Les notions de classe et d'objet
Programmation en C++ IO en C++/SL
Master Réseaux et Systèmes Distribués (RSD) Algorithmique des systèmes
Les nouvelles (1.4) entrées/sorties Rémi Forax
Format des fichiers TIFF
Programmation en C++ IO en C++/SL
Bonnes pratiques Orienté Objet et Java
Codage Indenter le code Limiter la portée des variables Traiter les erreurs en premier Utiliser le switch au delà de 3 tests en cascades Ne jamais utiliser.
Puzzler.
Programmation en C++ C++ de base
Edit the text with your own short phrase. The animation is already done for you; just copy and paste the slide into your existing presentation. REPUBLIQUE.
Programmation Android Les listes
G.ELGHOUMARI Université ParisII Panthéon-Assas
Programmation Web : DOM en PHP
Programmation par Objets et Java
Atos, Atos et le poisson, Atos Origin et le poisson, Atos Consulting ainsi que le poisson seul sont des marques déposées d'Atos Origin SA. © 2006 Atos.
Le langage C# : Partie 1.
Présentation Chaînage dynamique Retour sur les tableaux
STREAMS (et fichiers).
Lecture/Écriture de fichiers (I/O)
Catherine Cyrot - bibliothèques numériques - cours 3
Les Commandes de base Linux. 1 L’aide sur les commandes Linux ◦ help : obtenir de l’aide pour une commande interne du shell. Elle permet aussi d'afficher.
Transcription de la présentation:

Fichiers et entrées-sorties en Java File and Input-ouput in Java J.M. Vanel Conseil informatique, architecture

Plan ● Un exemple «simple» ● La classe File ● Notion de flot (stream); multiples sources et destination ● Les octets et les caractères ● La hiérarchie de InputStream et OutputStream: octets ● La hiérarchie de Reader et Writer: caractères ● Les encodages ● RandomAccessFile ● Sauver un graphe d’objets en XML : XMLEncoder ● Lire un fichier XML via SAX, via DOM

Un exemple «simple» Lire une ligne au clavier : BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); String line = in.readLine(); Extrait de « Java in a Nutshell » par David Flanagan

La classe File ● Ne s'occupe que du nom du fichier, des permissions, des répertoires, etc ● Ne pas s'occupe pas du contenu

Notion de flot (stream); multiples sources et destination ● Voirhttp://java.sun.com/docs/books/tutorial/essential/io /overview.htmlhttp://java.sun.com/docs/books/tutorial/essential/io /overview.html ● Entrées sorties traitées uniformément: fichiers, réseau, périphériques, tampons mémoire

Les classes ● Diagrammes ● rview.html rview.html ● Tableau: ● sinks.html sinks.html

Méthodes de base InputStream int read() int read(byte cbuf[]) int read(byte cbuf[], int offset, int length) OutputStream int write(int c) int write(byte cbuf[]) int write(byte cbuf[], int offset, int length)

Les octets et les caractères ● Fichiers binaires: on utilise les E/S par octets : XXXStream ● Fichiers caractères: on utilise les E/S par caractères: XXXReader et XXXWriter

La hiérarchie de InputStream et OutputStream: octets

La hiérarchie de Reader et Writer: caractères

Enrobages (wrappers) ● Alias modèle de conception « décorateur » ● Exemple «simple» revisité BufferedReader in = new BufferedReader( new InputStreamReader( System.in)); ● Double enrobage – De InputStream à InputStreamReader – De InputStreamReader à BufferedReader

Enrobages 2 (wrappers) ● Le décorateur de base est FilterInputStream ● Voir le reste de la hiérarchie avec eclipse

Les encodages ● Sur 1 octet : – ASCII – iso , Cp1215,... – UTF-8 (multi-octets pour tout ce qui n’est pas ASCII ) ; commence par FFFE ● Sur 2 octets: UTF-16 ● Sur 4 octets: UTF-32 : Unicode Il faut avoir un éditeur de texte UTF-8, par exemple gvim :set fileencoding=iso

Représentation interne encodages ● Classes – InputStreamReader – OutputStreamWriter ● Encodage indiqué dans le constructeur ● Voir dans le JDK: docs/guide/intl/encoding.doc.html la listes des encodages

RandomAccessFile En plus des méthodes normales: int skipBytes(int); // Moves the file pointer forward the specified number of bytes void seek(long); // Positions the file pointer just before the specified byte long getFilePointer() // Returns the current byte location of the file pointer

Sauver un graphe d’objets en XML : 1 - XMLEncoder String saveFileName = getSaveFileName(); XMLEncoder e = new XMLEncoder( new BufferedOutputStream( new FileOutputStream( saveFileName))); e.writeObject( testSpec ); e.close();

Sauver un graphe d’objets en XML : 2 - XMLDecoder Pour relire l'objet sauvé, il faut utiliser XMLDecoder : XMLDecoder d = new XMLDecoder( new BufferedInputStream( new FileInputStream( getSaveFileName()))); testSpec = (TestSpecification) d.readObject(); d.close();

Lire un fichier XML via SAX, via DOM ● Via SAX (Simple API for XML) – Implémenter ContentHandler – Le donner à un SAXParser – Lancer SAXParser.parse(monFichier) ● Via DOM Document doc = DocumentBuilderFactory.newInstance(). newDocumentBuilder().parse( " mon texte " );

Lire un fichier XML via SAX, via DOM ● Didacticiel chez Sun : ● Working with XML XML and the Document Object Model (DOM) ial/TOC.html ial/TOC.html