BufferedReader类
2016-03-14 23:42
375 查看
BufferedReader类用于从缓冲区中读取内容,多有的输入字节数据都将放在缓冲区中。
BufferedReader中定义的构造方法只能接收字符输入流的实例,所以必须使用字符输入流和字节输入流的转换类InputStreamReader将字节输入流System.in变为字符流
以下程序没有长度的限制,也可以正确地接收中文,所以以下代码就是键盘输入数据的标准格式
实例操作一:加法操作
输入两个数字,并让两个数字相加
可以实现整数、小数、字符串和日期类型数据的输入
实例操作二:菜单显示
BufferedReader中定义的构造方法只能接收字符输入流的实例,所以必须使用字符输入流和字节输入流的转换类InputStreamReader将字节输入流System.in变为字符流
以下程序没有长度的限制,也可以正确地接收中文,所以以下代码就是键盘输入数据的标准格式
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; //================================================= // File Name : BufferedReader_demo //------------------------------------------------------------------------------ // Author : Common //主类 //Function : BufferedReader_demo System; public class BufferedReader_demo { public static void main(String[] args) { // TODO 自动生成的方法存根 BufferedReader buf = null; //声明BufferedReader对象 buf = new BufferedReader(new InputStreamReader(System.in)); //实例化BufferedReader对象 String str = null; //接收输入内容 System.out.print("请输入内容:"); try{ str = buf.readLine(); //读取输入内容 }catch(IOException e){ //要进行异常处理 e.printStackTrace(); } System.out.println("输入的内容:"+str); } }
实例操作一:加法操作
输入两个数字,并让两个数字相加
可以实现整数、小数、字符串和日期类型数据的输入
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; //================================================= // File Name : BufferedReader_demo //------------------------------------------------------------------------------ // Author : Common //类名:InputData //属性: //方法: class InputData{ private BufferedReader buf = null; //声明BufferReader对象 public InputData() { //构造方法 this.buf = new BufferedReader(new InputStreamReader(System.in)); //实例化BufferedReader对象 } public String getString(String info){ //从此方法中得到字符串的信息 String temp = null; //接收输入内容 System.out.println(info); try{ temp = this.buf.readLine(); //读取输入内容 }catch(IOException e){ //要进行异常处理 e.printStackTrace(); } return temp; } public int getInt(String info,String err){ //得到一个整数的输入数据 int temp = 0; String str = null; boolean flag = true; //定义一个循环的处理标志 while(flag){ str = this.getString(info); if(str.matches("^\\d+$")){ //符合数字的格式 temp = Integer.parseInt(str); flag = false; }else{ System.out.println(err); } } return temp; } public Float getFloat(String info,String err){ //得到一个小数的输入数据 Float temp = 0f; String str = null; boolean flag = true; //定义一个循环的处理标志 while(flag){ str = this.getString(info); if(str.matches("^\\d+.?\\d+$")){ //符合小数的格式 temp = Float.parseFloat(str); flag = false; }else{ System.out.println(err); } } return temp; } public Date getDate(String info,String err){ //得到一个日期的输入数据 Date d = null; String str = null; boolean flag = true; //定义一个循环的处理标志 while(flag){ str = this.getString(info); if(str.matches("^\\d{4}+\\d{2}$")){ //符合小数的格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try{ d = sdf.parse(str); //将字符串变为Date型数据 }catch(ParseException e){ e.printStackTrace(); } flag = false; //更改标志位后,将退出循环 }else{ System.out.println(err); } } return d; } } //主类 //Function : BufferedReader_demo System; public class BufferedReader_demo2 { public static void main(String[] args) { // TODO 自动生成的方法存根 int i; int j; InputData input = new InputData(); i = input.getInt("请输入第一个数字:", "输入的数据必须是数字,请重新输入!"); j = input.getInt("请输入第二个数字:", "输入的数据必须是数字,请重新输入!"); System.out.println(i+"+"+j+"="+(i+j)); } }
实例操作二:菜单显示
//================================================= // File Name : menu_demo //------------------------------------------------------------------------------ // Author : Common //类名:Operation //属性: //方法: class Operation{ public static void add(){ System.out.println("你选择的是增加操作!"); } public static void delete(){ System.out.println("你选择的是删除操作!"); } public static void update(){ System.out.println("你选择的是更新操作!"); } public static void find(){ System.out.println("你选择的是查看操作!"); } } //主类 //Function : menu_demo; public class menu_demo { public static void main(String[] args) { // TODO 自动生成的方法存根 while(true){ show(); } } public static void show(){ System.out.println("菜单系统"); System.out.println("【1】增加数据"); System.out.println("【2】删除数据"); System.out.println("【3】修改数据"); System.out.println("【4】查看数据"); System.out.println("【0】系统退出"); InputData input = new InputData(); int i = input.getInt("请选择", "请输入正确的选项"); switch(i){ case 1:{ Operation.add(); break; } case 2:{ Operation.delete(); break; } case 3:{ Operation.update(); break; } case 4:{ Operation.find(); break; } case 0:{ System.exit(1); break; } default:{ System.out.println("请选择正确的操作"); } } } }
相关文章推荐
- javascript 字符串
- HTML+CSS实战(二)——固定层效果
- javascript之面向对象程序设计(对象和继承)
- 用gulp替代fekit构建前端项目
- .jshintrc配置文件中的一些常用配置
- defer和async的区别
- HTML DOM display 属性
- html5 Web storage
- 模拟Jquery选择器
- node.js编写服务器
- JS新API标准 地理定位(navigator.geolocation)
- HTML5学习笔记(总结提炼版)——002 CSS
- [读书笔记]Effective Java 第一章
- Jquery的样式切换
- 01.阅读JQUERY源码——定义函数
- jQuery 关于 end() 方法的详细解释
- 00.阅读JQUERY源码——简目录
- html5 (个人笔记)
- 【GDOI 2016模拟3.14】garrafeira
- JS中的window.location.href解释