import java.io.*;public class TestInputStreamReader{
  public static void main(String args[])throws IOException{
     InputStream is=System.in;
     int c=0;
     while((c=is.read())!=-1){
      System.out.print((char)c+" ");
                            //为什么第一个数输不出来?还有怎么跳不出循环?为啥呢么?
     }
  }
}

解决方案 »

  1.   


    1.
    is.read()是阻塞的 为什么第一个数输不出来? 应该没有这个问题。2. 因为 输入的C没有-1  所以一直循环。
      

  2.   

    System.in 默认从键盘输入作为读入值,你一开始执行,它就等待你键盘输入值,你没有到运行栏里从键盘输入什么,它就一直等待,所以这个是一个阻塞式的方法.
      

  3.   

    我晕死,刚刚给你写了好长一段回复,居然提交一下就没了,我再也不想重写回复了,最烦这个,CSDN老是出这样的问题,我很无奈要不你来我的Java群吧: 49167765  JAVAMM工作室     是一个Java讲课群
      

  4.   

    c=is.read()这里,
    c的值是输入字符的ascii码
    输入-1的时候
    c=="-"的asc码
      

  5.   

    我输入12345,或者abcde,1或者a就不显示啊?
      

  6.   

    没问题啊,我输入12345,回车以后屏幕上打印输出也是1 2 3 4 512345
    1 2 3 4 5  
     abcde
    a b c d e 
    这是我的两组测试结果