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

Langage Java Discussion :

Scanner ou stream


Sujet :

Langage Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 121
    Points : 82
    Points
    82
    Par défaut Scanner ou stream
    Bonjour,

    Quelle est la différence entre ces deux façons de faire ? Est ce qu'il y a une à mettre en place de préférence, dans quelle situation ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Scanner sc = new Scanner(System.in)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    BufferedReader BufferLecture = new BufferedReader(new InputStreamReader(System.in));
    			return BufferLecture.readLine();

  2. #2
    Membre éprouvé
    Avatar de Rony Rauzduel
    Homme Profil pro
    En formation Architecte logiciel
    Inscrit en
    Décembre 2008
    Messages
    630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : En formation Architecte logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 630
    Points : 1 029
    Points
    1 029
    Par défaut
    Bonjour,

    Java dispose de plusieurs façons pour récupérer les valeurs saisies depuis l'entrée standard, c'est-à-dire le clavier.
    Il n'y a aucune différence entre ces deux méthodes du peux utiliser l'une comme l'autre sans soucis.
    D'ailleurs
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    BufferedReader BufferLecture = new BufferedReader(new InputStreamReader(System.in));
    peut s'écrire plus simplement
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    BufferedInputStream clavier = new BufferedInputStream(System.in)
    Dans la littérature Java tu trouveras plus souvent l'utilisation de la classe Scanner que de BufferedInputStream.

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Scanner entree;
    entree = new Scanner(System.in);
    System.out.println("Veuillez saisir un répertoire :");
    nomRepertoire = entree.nextLine().trim(); 
    // effectuer un traitement avec la donnée récupérée
    ...
    // fermer le flux Scanner
    entree.close();

    Tu peux faire la même chose avec BufferedInputStream.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    Citation Envoyé par transact Voir le message
    D'ailleurs
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    BufferedReader BufferLecture = new BufferedReader(new InputStreamReader(System.in));
    peut s'écrire plus simplement
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    BufferedInputStream clavier = new BufferedInputStream(System.in)
    Pas du tout. BufferedInputStream ne permet pas de lire des lignes ni, d'ailleurs, ne s'occupe de décoder le texte, il ne transmet que du binaire composé d'octets.
    En fait, BufferedInputStream ne propose rien de plus à l'extérieur qu'InputStream. C'est juste que lui le fait avec un buffer.

    Maintenant, concernant la question de départ, c'est vrai qu'il n'y a pas de différence entre les deux.

    L'approche Scanner a simplement l'avantage d'être plus simple à écrire. A l'inverse, un Scanner ne se limite pas à nextLine(), il y a aussi nextInt(), nextDouble(), et d'autres comme juste next(). Mais, c'est une assez mauvaise idée de mélanger l'usage de nextLine() et des autres.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 121
    Points : 82
    Points
    82
    Par défaut
    merci

  5. #5
    Membre éprouvé
    Avatar de Rony Rauzduel
    Homme Profil pro
    En formation Architecte logiciel
    Inscrit en
    Décembre 2008
    Messages
    630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : En formation Architecte logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 630
    Points : 1 029
    Points
    1 029
    Par défaut
    Oups ! En effet Thelvin , je confonds souvent les deux. Cependant on peut aussi procéder de la sorte pour lire un flux depuis l'entrée standard
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    BufferedInputStream entree = new BufferedInputStream(System.in)
    // On passe par une classe implémentant l'interface Reader
    BufferedReader r = new BufferedReader(new InputStreamReader(entree, StandardCharsets.UTF_8));
    String line = r.readLine();
    System.out.println(line);
    Merci pour le rappel.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. DirectSound et le streaming
    Par Shakram dans le forum DirectX
    Réponses: 57
    Dernier message: 09/06/2005, 11h05
  2. [C#] Piloter un scanner
    Par freegreg dans le forum Windows Forms
    Réponses: 9
    Dernier message: 12/04/2005, 12h34
  3. Streaming fichier PDF
    Par rgarnier dans le forum XMLRAD
    Réponses: 4
    Dernier message: 22/05/2003, 22h14
  4. Scanner des mails et récupérer le fichier attaché
    Par delphim dans le forum Composants VCL
    Réponses: 2
    Dernier message: 24/04/2003, 09h35
  5. Comment enregistrer un stream de longueur fixe ?
    Par Alcarbone dans le forum MFC
    Réponses: 5
    Dernier message: 13/04/2003, 20h14

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