Java中有buf=new bufferedreader(new InputStreamReader(System.in));  这究竟该怎么用?我用这句话老是出问题。唉…………究竟该怎么用?比如输入三个整数?什么时候它会停止输入?

解决方案 »

  1.   

    停止输入,是要去判断System.in的。比如你可以设置当输入的是字符'q'的时候,就退出。你加个if判断就好了;否则会一直处于等待控制台输入这一状态的。
      

  2.   

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String a = "";
    while (!"quit".equals(a)) {
    System.out.println("请输入:");
    a = br.readLine();
    System.out.println(a);
    }
      

  3.   

    import java.io.*;
    public class A { public static void main(String[] args) throws IOException {
    BufferedReader buf = null;
    buf=new BufferedReader(new InputStreamReader(System.in)); 
    int i=Integer.parseInt(buf.readLine());//readLine返回String类型,要转成int类型
    while(i!=4) {//当输入4的时候退出循环
    System.out.println("你输入的值是:"+i);
    i=Integer.parseInt(buf.readLine());
    }
    }}
      

  4.   


       BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String a = "";
            while (!"quit".equals(a)) {//在控制台输入一个字符串,直到输入"quit"时退出
                System.out.println("请输入:");
                a = br.readLine();//读取输入字符串,以行为单位
                System.out.println(a);
            }
      

  5.   

    bufferedreader-------->BufferedReader
      

  6.   

    代码都有了,随便说下吧
    1.System.in标准输入流 , 他是InputStream类型的
    2.InputStreamReader ,转换流,根据字面的意思就是将InputStream(字节流)转换为Reader(字符流),所以new InputStreamReader的时候可以传入System.in
    3.BufferedReader,带缓冲区的字符流,这个就更加爽了,因为他有个ReadLine()方法,可以一次读一行.
    4.System.in是阻塞式的,也就是说如果你不输入,它就会在那里傻傻的等待你输入,直到你输入字符为止。
      

  7.   


    如果你的读取放在循环里,则不符合循环的条件时,就填出循环,就不等待了
    如果的代码中只有这一话String str = buf.readLine();那么就执行完这句后 执行下面的代码,就不再等待