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

Entrée/Sortie Java Discussion :

gestion des entrées-sorties [Débutant(e)]


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club Avatar de bandit_debutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Points : 69
    Points
    69
    Par défaut gestion des entrées-sorties
    Bonjour,

    après lecture de pas mal de doc sur les entrées-sorties, je ne comprends plus rien et rien ne marche.
    J'ai compris qu'il y avait dans l'histoire une classe InputStreamReader, le tampon, mais après, que faire avec tout ça?
    Je veux tout simplement demander à l'utilisateur de taper un chiffre. Voici deux lignes qui me posent problème:

    InputStreamReader converter = new InputStreamReader(System.in);
    BufferedReader in = new BufferedReader(converter);

    Voici mes questions:
    - ces deux lignes vont me retourner le chiffre en tant que caractère ou en tant que int?
    - Dois-je utiliser obligatoirement "try" quand je travaille avec les entrées-sorties?
    - Ces deux lignes, c'est tout ce qu'il faut pour lire l'entrée clavier ou il faut rajouter autre chose?

    Merci à tous

  2. #2
    Membre confirmé Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Points : 465
    Points
    465
    Par défaut
    System.in.readLine() ?

  3. #3
    Membre du Club Avatar de bandit_debutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Points : 69
    Points
    69
    Par défaut
    Et je la mets où cette instruction?
    à la place de System.in?

  4. #4
    Membre confirmé Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Points : 465
    Points
    465
    Par défaut
    c'est ça. et tu entres le texte dans la console de démarrage. c'est la méthode de base.

  5. #5
    Membre du Club Avatar de bandit_debutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Points : 69
    Points
    69
    Par défaut
    Merci pour tes conseils.
    Quand j'écris System.in.readLine() il m'affiche une erreur:

    cannot find symbol
    symbol: method readLine()
    location: class java.io.InputStream

    Alors je reviens à mon System.in et tout marche à merveille.

    Pourquoi il ne veut pas de System.in.readLine()

    J'ai pourtant fait import.java.io.*

    Merci encore

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 13
    Points
    13
    Par défaut
    Salut,

    Oui le plus simple est d'utiliser la methode readLine() mais elle n'est pas disponible directement depuis le System.in il faut l'encapsuler dans un BufferedReader par exemple. Voila un exemple ca sera plus clair:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
     
    public class IO {
     
    	public static void main(String[] args) {
     
    		System.out.println("Quel est votre age ?");
     
    		BufferedReader d = new BufferedReader(new InputStreamReader(System.in));
     
    		try {
    			String line = d.readLine();
    			int age = Integer.valueOf(line);
    			if (age > 30) {
    				System.out.println("Vous avez " + (age - 30)
    						+ " an(s) de plus que moi.");
    			} else {
    				System.out.println("Vous avez " + (30 - age)
    						+ " an(s) de moins que moi.");
    			}
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (NumberFormatException nfe) {
    			System.out.println("Vous n'avez pas donné un age valide!");
    		}
    	}
    }
    Oui la gestion de l'exception IOException est obligatoire. Par contre la gestion de l'exception NumberFormatException n'est pas obligatoire mais fortement conseillée dans cet exemple sinon le programme plantera si l'utilisateur entre autre chose qu'un entier...

    Bon code,
    A+

  7. #7
    Membre du Club Avatar de bandit_debutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Points : 69
    Points
    69
    Par défaut
    Merci pour ce bout de code qui m'aide beaucoup.
    Est-ce qu'on peut mettre à la place de:

    int age = Integer.valueOf(line);


    ... cette autre ligne? (dans mon petit truc ça marche)

    int age=Integer.parseInt(line);

    quelle est la différence entre les deux lignes? Ou on peut les utiliser indifféremment?

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 13
    Points
    13
    Par défaut
    C'est equivalent - la javadoc te dit même que le ValueOf() fait appel au parseInt(). C'est une histoire de preference et d'habitude

  9. #9
    Membre du Club Avatar de bandit_debutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Points : 69
    Points
    69
    Par défaut


    La javadoc doit être super, mais je ne comprends rien à l'anglais

    Je pense que peux utiliser le bouton Résolu

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

Discussions similaires

  1. Gestion des entrées sorties (noyau linux)
    Par vasto lord dans le forum Administration système
    Réponses: 0
    Dernier message: 04/11/2014, 11h12
  2. Gestion des entrées clavier
    Par piotrr dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 20/10/2007, 11h59
  3. Gestion des entrées utilisateur
    Par piotrr dans le forum Windows Forms
    Réponses: 8
    Dernier message: 26/09/2007, 21h00
  4. gestion des entrées !
    Par coax81 dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 15/05/2007, 10h07
  5. gestion des entrées et sortie en java
    Par lecyberax dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 14/05/2006, 22h51

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