[java] Saisie au clavier

Saisie au clavier [java] - Java - Programmation

Marsh Posté le 18-03-2003 à 10:15:36    


j'arrive pas a utiliser ma méthode de saisie au clavier.
je voudrais simplement saisir un truc au clavier, et le réafficher ensuite.
 
 

Code :
  1. import java.io.*;
  2. public class Saisie {
  3. private static String saisie_;
  4. public static String saisie_string() throws IOException {
  5.  BufferedReader inr = new BufferedReader(new InputStreamReader(System.in));
  6.  //String s = inr.readLine();
  7.  return (inr.readLine());
  8. }
  9. public String getSaisie() {
  10.  saisie_ = saisie_string();
  11.  return saisie_;
  12. }
  13.         public static void main(String args[]) {
  14.  Saisie s1 = new Saisie();
  15.  System.out.println("Saisie du clavier:     "+s1.getSaisie());
  16.  }
  17. }


 

Reply

Marsh Posté le 18-03-2003 à 10:15:36   

Reply

Marsh Posté le 18-03-2003 à 10:31:34    

a priori ca marche, il faut juste que tu catches l'IOException quelque part et ca roule

Reply

Marsh Posté le 18-03-2003 à 10:33:53    

HJ a écrit :


j'arrive pas a utiliser ma méthode de saisie au clavier.
je voudrais simplement saisir un truc au clavier, et le réafficher ensuite.


C'est bien d'avoir mis ton code, en revanche pourrait expliciter le probleme :
erreur de compilation -> message
exception a l'exec -> message
 


---------------
get amaroK plugin
Reply

Marsh Posté le 18-03-2003 à 11:59:24    

Je comprends pas bien le pourquoi du comment du mélange entre méthodes statiques/pas statiques ?

Reply

Marsh Posté le 18-03-2003 à 12:09:11    

R3g a écrit :

Je comprends pas bien le pourquoi du comment du mélange entre méthodes statiques/pas statiques ?


Vu le niveau, moi je comprends.
La ou il en est, il se pose meme pas la question de savoir ce que c'est que le mot clé static. Il fait juste une tambouiille pour que ca compile  :D  
 
C'est pas pour etre mechant que je dis ca, je suis passe par la  :whistle:


---------------
get amaroK plugin
Reply

Marsh Posté le 18-03-2003 à 12:09:45    

Ha oui tiens au passage :
 
 penserenjava.free.fr


---------------
get amaroK plugin
Reply

Marsh Posté le 18-03-2003 à 12:57:29    

oui, je débute en java.
 
Donc quand je compile, j'ai ça:
 


javac Saisie.java
 
Saisie.java:16: unreported exception java.io.IOException; must be caught or declared to be thrown
                saisie_ = saisie_string();

Reply

Marsh Posté le 18-03-2003 à 13:11:01    

Bon IOException est une exception que tu es obligé de catcher. Donc tu dois mettres l'appel à saisie_string() dans un bloc try :

Code :
  1. public String getSaisie() {
  2.         try {
  3.             saisie_ = saisie_string();
  4.         } catch (IOException exc) {
  5.             saisie_ = "erreur de saisie";
  6.         }
  7.         return saisie_;
  8.      }


Reply

Marsh Posté le 18-03-2003 à 13:14:57    

génial !
c'etait tout bête en faite.
J'avais essayer le try & catch dans l'autre méthode mais ça ne marchait pas
 
merci bcp, ça marche !

Reply

Marsh Posté le 18-03-2003 à 13:45:03    

HJ a écrit :

génial !
c'etait tout bête en faite.
J'avais essayer le try & catch dans l'autre méthode mais ça ne marchait pas
 
merci bcp, ça marche !
 


Tu peux aussi bien faire le try/catch dans saisie_string(), ca  depend du traitement que tu veux en faire. Mais dans ce cas, la clause throws est inutil dans la declaration de saisie_string() ; c'est à cause de ce throws que le compilateur t'oblge à catcher l'exception à l'appel de saisie_string().
Tu pourrais tout aussi bien déclarer getSaisie() throws IOException, et faire ton try/catch dans main().

Reply

Marsh Posté le 18-03-2003 à 13:45:03   

Reply

Marsh Posté le 18-03-2003 à 13:48:03    

tu peux aussi, mais la c'est vraiment bourrin, tapoter :
 

Code :
  1. public static void main(String args[]) throws Exception { ...

 
 
Mais c'est vraiment po bien  :D  
Mais bon quand tu veux faire du vite fait ... :whistle:  
 
[:neowen]


---------------
get amaroK plugin
Reply

Marsh Posté le 18-03-2003 à 13:52:37    

bobuse a écrit :

tu peux aussi, mais la c'est vraiment bourrin, tapoter :
 

Code :
  1. public static void main(String args[]) throws Exception { ...

 
 
Mais c'est vraiment po bien  :D  
Mais bon quand tu veux faire du vite fait ... :whistle:  
 
[:neowen]


 :ouch: Ca marche ca ? j'ai jamais osé essayer.

Reply

Marsh Posté le 18-03-2003 à 15:18:42    

ben oui ca marche.
 
et c'est bien mieux qu'un catch vide ou un catch qui fait n'imoprte quoi !!!  :o  
 
ca veut juste dire qu'au niveau le plus haut, tu ne sait pas quoi faire de cette exception ni comment la solutioner. Ca a rien de moche dans des petis progs

Reply

Marsh Posté le 18-03-2003 à 16:31:08    

BAh sinon,
 
JE crois que tu peux faire comme ca aussi:
 

Citation :


import java.io.*;
 
class Clavier
 {
 static char readChar()
   {
    boolean erreur;
    String s;
 
    do {
          erreur=false;
          s=readString();
          if(s.length()!=1)
            {
             System.out.println("Taper 1 caractere, puis entree" );
             erreur=true;
            }
         }while(erreur);
    return s.charAt(0);
   }
 
  static int readInt()
   {
    boolean erreur;
    int n=0;
 
    do {
          erreur=false;
          try {
                n=Integer.parseInt(readString());
               }
         catch(NumberFormatException e)
              {
               System.out.println("Erreur de saisie, recommencez" );
              erreur=true;
              }
        }while(erreur);
    return n;
   }
  static double readDouble()
   {
    boolean erreur;
    double n=0;
 
    do {
          erreur=false;
          try {
                n=new Double(readString()).doubleValue();
               }
         catch(NumberFormatException e)
              {
               System.out.println("Erreur de saisie, recommencez" );
              erreur=true;
              }
        }while(erreur);
    return n;
   }
 
 static String readString()
  {
   byte b[]=new byte[256];
   int n=0;
   boolean erreur;
 
  do {
        erreur=false;
        try{
             n=System.in.read(b);
            }
        catch(IOException e)
           {
            System.out.println(e);
            erreur=true;
            }
       }while(erreur);
   return new String(b,0,n-2);
  }
 }

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed