下面的这个程序经过测试,问题解决!
import java.io.*;
/**
*A simple input class to read values typed at the command line.if an error
*occurs during input,any exceptiong thrown are caught and a default value
*returned.
*
*@version 1.1 1999.08.18
*@author Graham Roberts
*@author Russel Winder
*/
public class KeyboardInput
{ /**
  *the buffered stream that works the keyboard so that we can read
  *from it sensibly.
  */
 private final BufferedReader in =
 new BufferedReader(new InputStreamReader (System.in));
 /**
 *Read an <CODE>int</CODE> value from keyboard input.
 *the default return value is 0.
 */
 
 public final synchronized int readInteger()
 {
  String input="";
  int value=0;
  try
  {
   input=in.readLine();
  }
  catch (IOException e)
  {
   if (input !=null)
      {
try
  {
    value =Integer.parseInt(input);
  }
catch (NumberFormatException ee){}
      }
  }
  return value;
  
 }
 
 
 /**
  *read a <CODE>long</CODE> value from keyboard input.
  *the default return value is 0L.
  */
  public final synchronized long readLong()//&acute;í&Icirc;ó&micro;&Auml;&frac34;&Iacute;&Ecirc;&Ccedil;&Otilde;&acirc;&ETH;&ETH;
  //illeagl start expression public final synchronized long readLong()
  {
    String input="";
    long value =0L;
    try
    {
     input=in.readLine();
    }
    catch (IOException e){}
    if (input !=null)
    {
     try
      {
       value=Long.parseLong(input);
      }
      catch (NumberFormatException ee){}
    }
    return value;
  }
  
  
   /**
   *Read a<CODE>double</CODE> value from keyborad input.
   *the default return value is 0.0.
   */
   public final synchronized double readDouble()
   {
    String input="";
    double value=0.0D;
    try{
       input=in.readLine();
       }
    catch (IOException e){}
  if (input !=null){
    try{
value =Double.parseDouble(input);
       }
catch (NumberFormatException ee){}
   }
return value;
   }
   
   
   //float,default return value is 0.0F
   public final synchronized float readFloat(){
String input="";
float value=0.0F;
try{
input=in.readLine();
   }
catch (IOException e){}
if(input !=null){
try{
value=Float.parseFloat(input);
   }
catch (NumberFormatException ee){}
}
return value;
}


   //char,default return value is ' '(space).
   public final synchronized char readCharacter(){
char c=' ';
try{
    c=(char)in.read();
   }
catch (IOException e){}
return c;
   }
   
   
  //String,default return value is ""(the empty string).
  public final synchronized String readString()
  {
String s="";
try
{
s=in.readLine();
}
catch (IOException e)
{
}
if(s==null)
{
s="";
}
    return s;
  }  
}