IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Au coeur du JDK : java.io expliqué simplement


Sujet :

Java

  1. #1
    Expert confirmé

    Avatar de Francis Walter
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 2 315
    Par défaut Au coeur du JDK : java.io expliqué simplement
    Olivier Croisier nous propose un tutoriel sur Java.io intitulé : Au coeur du JDK : java.io expliqué simplement. Il explique le plus simplement possible le fonctionnement de l'API java.io.

    Pour lire le tutoriel, accéder à : http://oliviercroisier.developpez.co...ue-simplement/

    N'hésitez pas à mettre vos critiques et impressions par rapport au tutoriel dans ce forum.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 6
    Par défaut
    quelques minutes de lecture et tout se décante
    ex-ell-ent

  3. #3
    Membre émérite
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Par défaut
    J'ai une question: Figure II-A, que signifient les flèches et pourquoi ne sont-elles pas dans le même sens?

  4. #4
    Invité de passage
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2009
    Messages : 1
    Par défaut
    Citation Envoyé par Deaf Voir le message
    J'ai une question: Figure II-A, que signifient les flèches et pourquoi ne sont-elles pas dans le même sens?
    Les flèches représentent les ponts qu'offrent les classes InputStreamReader et OutputStreamWriter entre les mondes binaire et textuel, comme expliqué dans le paragraphe accompagnant le schéma.

    Leur orientation représente le sens de circulation des données : lexture d'un flux binaire sous forme de texte pour InputStreamReader, et transformation de texte en flux binaire pour OutputStreamWriter.

  5. #5
    Membre actif
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Février 2014
    Messages : 16
    Par défaut
    "Pour que nos classes InputStreamReader et OutputStreamWriter puissent convertir efficacement des données textuelles en binaire (et réciproquement), il est donc nécessaire de leur fournir un Charset en paramètre de constructeur :" j'attendais ici une portion de code expliquant comment appliquer un charset à InputStreamReader mais peut elle a été oubliée, je pense que ça s'applique ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     BufferedReader bReader = new BufferedReader( new InputStreamReader("Path to file here", "CharsetHere"));
    Merci Monsieur Olivier de l'ajouter

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 62
    Par défaut
    Petite question s'agissant du design pattern Decorateur qui (je cite l'auteur de l'article) "permet d'ajouter des comportements (méthodes) à un objet de base, par composition plutôt que par héritage, favorisant ainsi la cohésion et la réutilisabilité".

    S'agissant de la réutilisabilité, je trouve que l'héritage, justement, c'est pas mal non plus

    Et surtout, je ne vois pas où est la composition dans les exemples de l'article? En effet, java.io.LineNumberReader dérive de java.io.BufferedReader qui dérive de java.io.Reader : héritage, donc, mais s'agissant de la composition, je ne vois pas où, je passe à coté ?

  7. #7
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Logicielz Voir le message
    "Pour que nos classes InputStreamReader et OutputStreamWriter puissent convertir efficacement des données textuelles en binaire (et réciproquement), il est donc nécessaire de leur fournir un Charset en paramètre de constructeur :" j'attendais ici une portion de code expliquant comment appliquer un charset à InputStreamReader mais peut elle a été oubliée, je pense que ça s'applique ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     BufferedReader bReader = new BufferedReader( new InputStreamReader("Path to file here", "CharsetHere"));
    Attention à ce genre de code qui peut être "dangereux" : le charset pouvant être inconnu et générer une exception, et dans ce cas la ressource ne serait jamais fermée.
    Il serait préférable d'y passer directement un Charset (voir même un CharsetDecoder) en l'initialisant avant (comme ca en cas d'erreur on n'ouvre même pas le fichier) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	CharsetDecoder decoder = Charset.forName("CharsetHere").newDecoder();
    	return new BufferedReader(new InputStreamReader(new FileInputStream("Path to file here"), decoder));
    Ou avec Java 7 en déclarant la ressource seule sans l'encapsuler de suite pour être sûr qu'elle soit bien fermée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    try (FileInputStream fis = new FileInputStream("Path to file here");
        BufferedReader reader = new BufferedReader(new InputStreamReader(fis, "CharsetHere")) {
            ...
    }



    Citation Envoyé par Isidore.76 Voir le message
    Et surtout, je ne vois pas où est la composition dans les exemples de l'article? En effet, java.io.LineNumberReader dérive de java.io.BufferedReader qui dérive de java.io.Reader : héritage, donc, mais s'agissant de la composition, je ne vois pas où, je passe à coté ?
    La composition c'est le fait de passer une instance au constructeur : ton LineNumberReader dérive bien de BufferedReader et Reader, mais il ne peut fonctionner tout seul.
    Tu dois lui passer un autre Reader en paramètre, qu'il enrichira donc par composition.




    a++

Discussions similaires

  1. open JDK Java et Ubuntu
    Par cornette dans le forum Général Java
    Réponses: 3
    Dernier message: 01/11/2009, 19h57
  2. [JAVA] Lien expliquant comment créer/ lire / modifier un XML
    Par The_revival dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 07/12/2005, 17h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo