大家都来看看!!!!
public static void main(String args[]) throws Exception
{
int data ;
data=System.in.read();
System.out.write(data);
System.out.flush();}
public static void main(String args[]) throws Exception
{
while((data=System.in.read())!=-1)
{
System.out.write(data);
}
}
我有个疑问一直搞不明白:假如只输入一个字符,运行第一个的时候就需要调用flush()按回车后才能及时把这个字符显示出来;而在第二个运行是也只输入一个字符按回车而没有调用flush()就可以立即把输入的打印出来!!哪位哥哥能告诉俺这是为什么啊!!
还有一个问题就是 JAVA虚拟机才用的是unicode!一个字符站两个字节!而in.read()只能读一个字节的数据!但最后却还能把字母打印出来???????
望各位大侠不吝赐教!!
------解决方案--------------------public void write(int b) {
try {
synchronized (this) {
ensureOpen();
out.write(b);
if ((b == '\n ') && autoFlush)
out.flush();
}
}
这是write那个方法
------解决方案--------------------下回直接研究下JDK源码就知道了.
------解决方案--------------------mark
------解决方案--------------------????????????????????????????????????????????????????????????????????????????????