一般不直接调用System.in的read方法,而是通过其它io类比如BufferedInputStream,
BufferedWriter等包装System.in后,然后再通过外层的类来进行read

解决方案 »

  1.   

    import java.io.*;
    public class inout{
    public void main(String args[])  {
                        int i;
                     i=System.in.read();
    char c;
    c=(char)i; System.out.println("output"+c);
    }
    }

    这样写对吗 我怎么编译通不过呢 ?
      

  2.   

    System.in.read()需要抛出一个异常
    这个可以看jdk的文档
      

  3.   

    import java.io.*;
    public class inout{
    public static void main(String args[]) shrows IOExeception {
                        int i;
                     i=System.in.read();
    char c;
    c=(char)i; System.out.println("output"+c);
    }
    这样写就好用了 我想象问问 为什么 main 函数要定义为静态呢
    不定义为 静态的为什么不好用牙
      

  4.   

    read()读的是单个字符 返回是int是该字符的ascII码,你直接用char强制转换就行
      

  5.   

    read()是单个字节的读取,读取输入的一行要循环读取。
      

  6.   

    byte[] b=new byte[10];
    System.in.read(b);
    for(int i=0;i<b.length;i++){
      System.out.print((char)b[i]);
    }
    读取一行,准备的字节数组要足够大
    如果要对unicode支持,最好用Reader与system.in连接起来。