IO流_演示键盘录入

读取一个键盘录入的数据,打印到控制台上

键盘本身就是一个标准的输入设备,对于java而言,对于这种输入设备都有相应的对象在System类中

 1 import java.io.IOException;
 2 import java.io.InputStream;
 3 
 4 public class ReadKeyDemo {
 5     public static void main(String[] args) throws IOException {
 6         readKey();
 7     }
 8     public static void readKey() throws IOException {
 9         InputStream in = System.in;
10         int ch =0;
11         while((ch = in.read())!=-1){//read()这个方法是阻塞式的方法,当没数据可读的时候等待
12             System.out.print((char)ch);
13             //in.close();//默认的输入和输出设备不要关闭资源,会发生异常,
14         }
15     }
16 }

获取用户键盘录入的数据,并将数据变成大写显示在控制台上,如果用户输入的是over,结束键盘录入

思路:
   1.因为键盘录入只能读取一个字节,要判断是否是voer,需要将读取到的字节转换成字符串,
   2.那就需要一个容器,StringBuilder
   3.在用户回车之前将录入的数据变成字符串,再判断是否是voer即可

import java.io.IOException;
import java.io.InputStream;

public class ReadKeyTest {
    public static void main(String[] args) throws IOException {
        readKey();
    }
    public static void readKey() throws IOException {
        //1.创建容器
        StringBuilder sb = new StringBuilder();
        //2.获取键盘读取流
        InputStream in = System.in;
        //3.定义变量记住读取的字节,并循环获取
        int ch = 0;
        while((ch = in.read())!=-1){
            //在存储之情需要判断是否是换行标记,因为换行标记不存
            if(ch=='
')
                continue;
            if(ch=='
'){
                String temp = sb.toString();
                if("over".endsWith(temp))
                    break;
                System.out.println(temp.toUpperCase());
                sb.delete(0, sb.length());//打印完之后要清空掉容器里的字符
            }
            else
            //将读取到的数据存储到StringBuilder中
                sb.append((char)ch);
            //System.out.println(ch);
        }
    }
}
原文地址:https://www.cnblogs.com/LO-ME/p/3593889.html