Java IO学习【14】读取键盘录入

18 篇文章 0 订阅
1 篇文章 0 订阅

       最近几天兰州热爆了,昨晚热的俺都没睡着,凌晨舍友开了宿舍门才睡着了点~刚来兰州的时候好多人都说兰州夏天挺凉快的,导师也让我们呆着兰州算是暑期避暑,兰州的热是没有空调没有风扇紫外线很强的热,现在有点被骗的感觉,其实也是每个人说话都是从有利于自己的一方面说的,而听着则需要思考这话到底真假。。。好热啊。

        开始技术~

        今天要学习的是读取一个键盘录入的数据,并打印在控制台上。这个在我的判断季节的那个博客里面已经写出了那个代码,但那个代码是自己看完书之后写的,那时并没有系统的学习字符流字节流这些东西,现在重新来看看这个知识点,希望能有更深的了解。

        键盘本身就是标准的输入设备,最Java而言,对于这种输入设备都是对应的对象,java.lang包(Java的核心包)System.in这个是InputStream的字节流。要注意System.in流对象只有一个,你把in关了就再也用不了,所以in最好不要关,它会随系统的关闭而关闭。所以可以写出一下代码。

public static void readKey() throws IOException {
		
		InputStream in = System.in;
		int ch = in.read();  //阻塞式方法
		System.out.println(ch);
		int ch1 = in.read();  //阻塞式方法
		System.out.println(ch1);
		int ch2 = in.read();  //阻塞式方法
		System.out.println(ch2);	}

在这个里面我们读的三次,若只输入一个数据,会读出三个数字,这是因为在windows中换行是/r/n所以会出现13/10

        那么接下来就应该写一个可以正确运行的小程序了。

public static void readKey_2() throws IOException {
		/*
		 * 不断的读取键盘录入的数据
		 * 获取用户键盘录入的数据,并把数据变成大写显示在控制台上,
		 * 如果录入over,结束键盘录入。
		 * 
		 * 思路:因为键盘录入值读取一个字节,要判断是够是over,需要将读到的字节拼成字符串。
		 * 2.那就需要一个容器。StringBuilder。
		 * 3.在用户回车之前,将数据变成字符串判断即可。
		 */
		
		//1.创建容器
		StringBuilder sb = new StringBuilder();
		//获取键盘读取流
		InputStream in = System.in;
		//定义变量,获取读取的字节,并循环获取
		int ch = 0;
		while((ch=in.read())!=-1){
			//在存储之前判断是否是换行标志
			if(ch=='\r')
				continue;
			if(ch=='\n'){  //一行结束,进行判断
				String temp = sb.toString();
				if("over".equals(temp))
					break;
				System.out.println(temp.toUpperCase());
				sb.delete(0, sb.length());
			}
			else	
			//将获取到的字节存储到sb里
			sb.append((char)ch);			
		}
		in.close();
		
	}


 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值