Java中有buf=new bufferedreader(new InputStreamReader(System.in)); 这究竟该怎么用?我用这句话老是出问题。唉…………究竟该怎么用?比如输入三个整数?什么时候它会停止输入?
解决方案 »
- 关于输出的顺序乱掉的问题
- 新手请教关于输入输出流的问题
- 有些想不通!
- Swing 表头第一列不可拖动
- ant新手求助!The <javac> task doesn't support the "source" attribute
- System.out.println 和 System.err.println有什么不同
- 请问: private ShapeObject crayons[]中的ShapeObject什么意思?
- 用JB如何调试纯java语句呀?我刚学java只要能知道运动结果就行了
- synchronized(this)是什么意思?
- <Thinking in Java>的例子,运行出问题,帮我看看是什么问题...
- swing的一个问题
- invokeLater的调用顺序问题。比较简单的程序
String a = "";
while (!"quit".equals(a)) {
System.out.println("请输入:");
a = br.readLine();
System.out.println(a);
}
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());
}
}}
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);
}
1.System.in标准输入流 , 他是InputStream类型的
2.InputStreamReader ,转换流,根据字面的意思就是将InputStream(字节流)转换为Reader(字符流),所以new InputStreamReader的时候可以传入System.in
3.BufferedReader,带缓冲区的字符流,这个就更加爽了,因为他有个ReadLine()方法,可以一次读一行.
4.System.in是阻塞式的,也就是说如果你不输入,它就会在那里傻傻的等待你输入,直到你输入字符为止。
如果你的读取放在循环里,则不符合循环的条件时,就填出循环,就不等待了
如果的代码中只有这一话String str = buf.readLine();那么就执行完这句后 执行下面的代码,就不再等待