读取一个键盘录入的数据,打印到控制台上
键盘本身就是一个标准的输入设备,对于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==‘\r‘) continue; if(ch==‘\n‘){ 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); } } }
原文:http://www.cnblogs.com/LO-ME/p/3593889.html