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 éminent sénior

    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
    Points : 26 889
    Points
    26 889
    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.
    Vous avez envie de contribuer au sein du Club Developpez.com ?

    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, ...etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  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
    Points : 12
    Points
    12
    Par défaut
    quelques minutes de lecture et tout se décante
    ex-ell-ent

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    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
    Membre habitué
    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
    Points : 135
    Points
    135
    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
    Futur Membre du Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Maroc

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

    Informations forums :
    Inscription : Février 2014
    Messages : 16
    Points : 7
    Points
    7
    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 du Club
    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
    Points : 59
    Points
    59
    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 sénior
    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
    Points : 23 190
    Points
    23 190
    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