个人博客
专注IT梦想的地方

Java编程IO流中使用键盘录入和读取键盘录入

其实在讲这篇文章的之前,我们已经使用过键盘录入和读取键盘录入了,当然,对于键盘来说只是一种方法,而统一的名称应该是录入设备和输出设备,而录入设备就包含了键盘、语音、写字板等等录入设备,而输出设备就包含诸如显示器、打印机等等,所以大家一提到这个就应该想到System类里面的in和out。

没错,那我们在IO流中使用键盘录入和读取键盘录入的内容也同样会用到in和out,那么接下来给大家简单的演示一段代码:

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

public class Demo {
	public static void main(String[] args) throws IOException{
		InputStream ins = System.in;	//使用键盘输入一个信息并创建一个字节流对象

		int ch = ins.read();	//读取一个键盘输入的一个字节并赋值给ch

		System.out.println(ch);		//打印一个ch的字节值
	}
}

由于字节流的read方法是一个字节一个字节的读取,所以要打印出完成的输入值,需要使用一个循环来进行操作,如下:

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

public class Demo {
	public static void main(String[] args) throws IOException{
		InputStream ins = System.in;	//使用键盘输入一个信息并创建一个字节流对象
		int ch = 0;

		while((ch=ins.read())!=-1){
			System.out.println(ch);		//循环打印出ch的字节值
		}
		
		ins.close();//这里只要关闭就不能再次输入了,除非重新运行程序。
	}
}

但是有一点,在输入的时候会另外读取出“t”和“n”的值13和10。

另外,一般我们如果在结尾带上关闭流,那之后就再也无法输入了,所以一定要考虑清楚在什么时候使用。

 

做个简单的需求演练:

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

public class Demo {
	public static void main(String[] args) throws IOException{
		/*
		 * 获取用户键盘录入的数据,并将数据编程大写显示在控制台上,如果用户输入的是over,则结束键盘录入
		 * 
		 * 思路:
		 * 1.因为键盘录入只读取一个字节,要判断是否是over,需要先将读到的字节转成字符串。
		 * 2.那就需要一个容器。StringBuilder比较好
		 * 3.在用户回车之前将录入的数据变成字符串判断即可。
		 * 
		 */

		//1.创建容器。
		StringBuilder sb = new StringBuilder();

		//2.获取键盘读取流
		InputStream ins = System.in;

		//3.定义变量记录读取到的字节,并循环获取。
		int ch = 0;
		while((ch=ins.read())!=-1){
			//在存储之前需要判断是否是换行标记,因为换行标记不存储。
			if(ch=='r'){
				continue;
			}else if(ch=='n'){
				String temp = sb.toString();
				if("over".equals(temp)){
					break;
				}else{
					System.out.println(temp.toUpperCase());
					sb.delete(0, sb.length());
				}
			}else{
				//将读取到的字节存储到StringBuilder中。
				sb.append((char)ch);
			}
		}
	}
}

 

赞(154) 打赏
未经允许,不得转载本站任何文章:智言个人博客 » Java编程IO流中使用键盘录入和读取键盘录入

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏