为什么不char =(char)System.in.read();在java工作?

时间:2014-02-03 23:33:44

标签: java exception object

这是我的代码

package test.program;
/**
 *
 * @author Justin 
*/

public class TestProgram 
{

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) 
    {
       char ch;
       ch = (char)System.in.read();
       if(ch<'K')
           System.out.println("This stuff is less than K " + ch);
       else
           System.out.println("Thats that stuff I don't like " + ch);
    }

}
我忘了输入一些东西吗?它给我一个错误说

  

未报告的异常IOException,必须被捕获或声明被抛出

4 个答案:

答案 0 :(得分:4)

System.inInputStreamInputStream's read method throws an IOException

  

抛出:

     

IOException - 如果发生I / O错误。

它是一个已检查的异常,因此您必须捕获它或让调用它的方法声明它会抛出IOException

答案 1 :(得分:0)

此部分适用ch = (char)System.in.read();。你的问题在别的地方 这是main方法未声明抛出IOException

试试这个:

public static void main(String[] args) throws java.io.IOException {

答案 2 :(得分:0)

当您在Java中使用IO时,大多数情况下您必须处理IOException。在这种情况下,当您正在读取输入时,可能会发生这种情况。

试试这样:

public static void main(String[] args) 
{
   char ch;
   try{
       ch = (char)System.in.read();
   }
   catch(IOException e){
       e.printStackTrace();
   }
   if(ch<'K')
       System.out.println("This shit is less than K " + ch);
   else
       System.out.println("Thats that shit I don't like " + ch);
}

答案 3 :(得分:0)

http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html#read() - 从API,InputStream的read()方法抛出IOException,因此您需要捕获它或重新抛出它