是否BufferedReader 不将第一个缓冲区中的内容清除,就无法显示第二个缓冲区的内容???
代码:String s1="";
String s2="";
BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));
BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
s1=br1.readLine();
s2=br2.readLine();
System.out.println(s2);程序运行时,依次输入:
asdf
12345
输出的总是:asdf
为什么啊
若将程序改为:
s1=br1.readLine();
System.out.println(s1); s2=br2.readLine();
System.out.println(s2);
也就是在输出s2之前先将s1输出,则一切正常
迷茫中,能够在不输出s1的情况下,直接输出s2呢?(貌似前一种情况我输入的“12345”根本没有赋值到s2中,s2中内容与s1相同的)
小弟跪求解惑!!!
代码:String s1="";
String s2="";
BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));
BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
s1=br1.readLine();
s2=br2.readLine();
System.out.println(s2);程序运行时,依次输入:
asdf
12345
输出的总是:asdf
为什么啊
若将程序改为:
s1=br1.readLine();
System.out.println(s1); s2=br2.readLine();
System.out.println(s2);
也就是在输出s2之前先将s1输出,则一切正常
迷茫中,能够在不输出s1的情况下,直接输出s2呢?(貌似前一种情况我输入的“12345”根本没有赋值到s2中,s2中内容与s1相同的)
小弟跪求解惑!!!
import java.io.*;
public class TextS{
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));
String s1 = br.readLine();
String s2 = br1.readLine();
System.out.println(s2);
}
}
输入aaa
123
怎么我是输出123,呵呵
再不行你就用一个BufferedReader对象.
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Test {
public static void main(String[] args)throws Exception {
BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));
BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
String s1=br1.readLine();
String s2=br2.readLine();
System.out.println(s2);
}
}
输入aaa
123
输出123
楼主是不是哪里搞错了???
{
String s1 = "";
String s2 = ""; BufferedReader br1 = new BufferedReader(
new InputStreamReader(System.in));
BufferedReader br2 = new BufferedReader(
new InputStreamReader(System.in));
s1 = br1.readLine();
s2 = br2.readLine();
System.out.println(s1);
System.out.println(s2); }运行结果:
asdf
1234
asdf
1234结果正确啊,没有问题啊
String s1="";
String s2="";
BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in)); //读取输入1
BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in)); //读取输入2
s1=br1.readLine(); //将输入一的第一行赋值到s1
s2=br2.readLine(); //将输入二的第一行赋值到s2
System.out.println(s2);
你只println了s2当然只有s2的内容输出了.....system.in好象应该书阻塞方式的,就是br1没读取完的话不会去读取br2的
abcd
123
他只输出123不输出abcd...
asdf
12345
输出应该是12345吧,另外更正下,应该是说BufferedReader.readLine()是阻塞方式..所以在 s1=br1.readLine()运行完之前br2是获取不到你的输入的值的.只有在它执行完了,也就是你输入asdf回车以后它把值赋给s1以后,才会去执行s2=br2.readLine()这时候你输入12345回车它就把值赋给了s2.我上贴说的输入1输入2是不准确的,br1和br2只是获取了system.in的输入流,所以他们本质是一样的.也就是说你这程序你只有一个br1结果也是一样的..
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Test {
public static void main(String[] args)throws Exception {
BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));
BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
String s1=br1.readLine();
String s2=br2.readLine();
System.out.println(s2);
}
}
输入aaa
123
输出aaa
我想是不是我的Jcreator与vista的底层兼容呢问题?
更加迷茫中