//虽然我会用JAVA,但是底层的东西仍然是菜鸟。见笑了
我写了一个测试terminalIO的class代码如下:
package cn.cairuzhang.test;import java.io.IOException;public class terminalIO {
      public static void main(String[] args)throws IOException{
       int i;
       while((i = System.in.read())!= -1){
       i = Character.toLowerCase((char)i);
       System.out.write(i);
       }
       }
      }
上面的运行是正确的。但是当我加入下面的语句
package cn.cairuzhang.test;import java.io.IOException;public class terminalIO {
      public static void main(String[] args)throws IOException{
       int i;
       while((i = System.in.read())!= -1){
       i = Character.toLowerCase((char)i);
       System.out.write(i);
       System.out.write(i);
       }
       }
      }
结果就出现了一点奇特的地方::
U
uu
I
ii
//每次输出都带两个空行?!
然后我继续修改代码如下:
package cn.cairuzhang.test;import java.io.IOException;public class terminalIO {
      public static void main(String[] args)throws IOException{
       int i;
       while((i = System.in.read())!= -1){
       i = Character.toLowerCase((char)i);
       System.out.write(i);
       System.out.print("test");
       }
       }
      }
结果shi:
MAYBE
mtestatestytestbtestetest
test
test
//依然多出两行,不过即使是print而不是println,仍然会过行……
我有点疑惑其中的原因,所以发帖问问大家。不过也许是非常浅显的知识,我是菜鸟,请见谅、谢谢啦java

解决方案 »

  1.   

    System.out.write是字节流,System.out.println一个是字符流
    http://blog.sina.com.cn/s/blog_6abf2a620100sfqd.html
      

  2.   

    首先你这个程序无法正常结束,read停止输入是当输入为-1,这个如何才能满足?
    执行时,按回车键导致输出(直到出现换行符时,才将打印缓冲中的内容打印出来),而回车键是2个字符:回车、换行
    所以,两个write,就出现2个空行,因为输出了2个换行符