in.read(b,0,2);返回的是读取的字节数,不是所读的内容。所读进的内容是保存在b当中的啊。
把a = in.read(b,0,2);改成:
a = new Integer(new String(b).trim()).intValue();
就可以了。

解决方案 »

  1.   

    a=in.read(b,0,2);
    这句话改成下面几句        a = in.read();
            //a = in.read(b, 0, 2);
            a -= 48;in.read(b,0,2) 返回的是读入的字节数,一个数字和一个回车符,所以是2
    读入的是 ASCII码,如果如果你输入 4 的话,a 的值会是52,'4' 的ASCII 码,所以减48,即'0'的ASCII,变成数字
      

  2.   

    Tasia(这里是CSDN吗?) 
    这样做好象有错误,
    提示NumberFormatException错误
    还有两个Integer错误,
    有可能的话希望帮助调试一下
      

  3.   

    Tasia(这里是CSDN吗?) 兄的意思大概是将a=in.read(b,0,2);改成
    in.read(b,0,2);
    a = new Integer(new String(b).trim()).intValue();
      

  4.   

    对,是在read(b,0,2)之后,把b中的内容成数字
      

  5.   

    不错,感谢,
    两种方法均可实现 
    这是清华的一本JAVA教材上的错误,
    唉,清华的书也这样,太不负责任了