Java IO学习【14】读取键盘录入
2015-07-28 11:27
375 查看
最近几天兰州热爆了,昨晚热的俺都没睡着,凌晨舍友开了宿舍门才睡着了点~刚来兰州的时候好多人都说兰州夏天挺凉快的,导师也让我们呆着兰州算是暑期避暑,兰州的热是没有空调没有风扇紫外线很强的热,现在有点被骗的感觉,其实也是每个人说话都是从有利于自己的一方面说的,而听着则需要思考这话到底真假。。。好热啊。
开始技术~
今天要学习的是读取一个键盘录入的数据,并打印在控制台上。这个在我的判断季节的那个博客里面已经写出了那个代码,但那个代码是自己看完书之后写的,那时并没有系统的学习字符流字节流这些东西,现在重新来看看这个知识点,希望能有更深的了解。
键盘本身就是标准的输入设备,最Java而言,对于这种输入设备都是对应的对象,java.lang包(Java的核心包)System.in这个是InputStream的字节流。要注意System.in流对象只有一个,你把in关了就再也用不了,所以in最好不要关,它会随系统的关闭而关闭。所以可以写出一下代码。
在这个里面我们读的三次,若只输入一个数据,会读出三个数字,这是因为在windows中换行是/r/n所以会出现13/10
那么接下来就应该写一个可以正确运行的小程序了。
开始技术~
今天要学习的是读取一个键盘录入的数据,并打印在控制台上。这个在我的判断季节的那个博客里面已经写出了那个代码,但那个代码是自己看完书之后写的,那时并没有系统的学习字符流字节流这些东西,现在重新来看看这个知识点,希望能有更深的了解。
键盘本身就是标准的输入设备,最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(); }
相关文章推荐
- JavaWeb学习——文件上传和下载
- SpringMVC入门学习体验(1)基于xml的MultiActionController
- Spring工作原理
- window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
- 读Spring的源代码五:AutoWired是如何实现注入的
- JAVA中类、实例与Class对象
- 深入阅读java api之URL
- 读Spring的源代码四:获取bean实例的过程
- javac和java
- java web项目命令打war包
- eclipse 项目视图问题 关于包与文件夹
- 【java】Windows7 下环境变量设置
- Java解析XML文档方式一—DOM
- Java工程师笔试题
- java判断图片的编码格式
- JAVA正则表达式30分钟入门 && 正则表达式速查表
- myeclipse中连接mysql数据库
- java.math.BigInteger cannot be cast to java.lang.Long
- Birt报表调用java程序
- Spring MVC详解(三)DispatcherServlet作用