java中怎样在控制台读入一个字符,注意是一个字符,而不是字符串?

解决方案 »

  1.   

    import java.io.*;import java.io.*;
    public class Main {
        public static void main(String[] args) throws IOException {
            DataInputStream in = new DataInputStream(System.in);
            char ch = in.readChar();
            System.out.println(ch);
        }
       
    }
      

  2.   

    read
    public int read(char[] cbuf,
                    int off,
                    int len)
             throws IOException将字符读入数组的某一部分。 
    此方法实现 Reader 类相应 read 方法的常规协定。另一个便捷之处在于,它将通过重复地调用底层流的 read 方法,尝试读取尽可能多的字符。这种迭代的 read 会一直继续下去,直到满足以下条件之一: 已经读取了指定的字符数, 
    底层流的 read 方法返回 -1,指示文件末尾(end-of-file),或者 
    底层流的 ready 方法返回 false,指示将阻塞后续的输入请求。 
    如果第一次对底层流调用 read 返回 -1(指示文件末尾),则此方法返回 -1。否则此方法返回实际读取的字符数。 
    鼓励(但不是必须)此类的各个子类以相同的方式尝试读取尽可能多的字符。 一般来说,此方法从此流的字符缓冲区中获得字符,根据需要从底层流中填充缓冲区。但是,如果缓冲区为空、标记无效,并且所请求的长度至少与缓冲区相同,则此方法将直接从底层流中将字符读取到给定的数组中。因此多余的 BufferedReader 将不必复制数据。 
    指定者:
    类 Reader 中的 read
    参数:
    cbuf - 目标缓冲区
    off - 开始存储字符处的偏移量
    len - 要读取的最大字符数 
    返回:
    读取的字符数,如果已到达流末尾,则返回 -1 
    抛出: 
    IOException - 如果发生 I/O 错误