package io.transstream.demo;
import java.io.IOException;
import java.io.InputStream;
import java.util.function.IntConsumer;import com.sun.org.apache.regexp.internal.recompile;
import javafx.scene.shape.SVGPath;
/*
* 读取一个键盘录入的数据,并打印在控制台上
*
* 键盘本身就是一个标准的输入设备
* 对于java而言 这种输入设备都有对应的对象
*
*
*
*/
public class ReadKey {
public static void main(String[] args) throws IOException {
//ReadKey();
ReadKey2();
}
private static void ReadKey2() throws IOException {
/*
* 获取用户键盘录入的数据
* 并将数据变成大写显示在控制台上
* 如果用户输入的是over 结束键盘lure
*
* 思路:
* 1.因为键盘录入只读一个字节 要判断是否是over 需要先将读取到的字节拼成字符串
* 2 那就需要一个容器 StringBuilder
* 3 在用户回车之前将录入的数据变成字符串判断即可
*
*/
//1 创建容器
StringBuilder sb=new StringBuilder();
//2 获取键盘读取流
InputStream in=System.in;
//定义变量记录读取到的字节,并循环获取
int ch=0;
while((ch=in.read())!=-1) {
//在存储之前需要判断是否是换行标记 因为换行标记不存储
if(ch=='\r')
continue;
if(ch=='\n') {
String str=sb.toString();
if("over".equals(str)) {
return;
}
System.out.println(str.toUpperCase());
sb.delete(0, sb.length());
}
//将读取到的字节存储到StringBulider中
else
sb.append((char)ch);
}
}
private static void ReadKey() throws IOException {
InputStream in=System.in;//系统的流对象只有一个 给了in 如果in.close()就再也打不开了
int ch=in.read();
int ch1=in.read();
int ch2=in.read();
System.out.println(ch);
System.out.println(ch1);
System.out.println(ch2);
/*in.close(); //此流不需要关
InputStream in2=System.in;//系统的流对象只有一个 给了in 如果in.close()就再也打不开了
*/ }
}
Java IO 键盘录入
最新推荐文章于 2023-01-31 10:44:09 发布