您的位置:首页 > Web前端

BufferedReader类

2016-03-14 23:42 375 查看
BufferedReader类用于从缓冲区中读取内容,多有的输入字节数据都将放在缓冲区中。



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("请选择正确的操作");
}
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: