Java知识点总结(JavaIO- BufferedReader类)
@(Java知识点总结)[Java, JavaIO]
[toc]
BufferedReader 类用于从缓冲区中读取内容,所有的输入字节数据都将放在缓冲区中
Buffered 中定义的构造方法只能接收字符输入流的实例,所以必须使用字符输入流和字节输入流的转换类InputStreamReader 将字节输入流转变为字符流。
public class Demo10 {
public static void add1() {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int i = 0;
int j = 0;
try {
System.out.println("请输入第一个数字:" );
i = Integer.parseInt(br.readLine());
System.out.println("请输入第二个数字:" );
j = Integer.parseInt(br.readLine());
} catch (NumberFormatException | IOException e) {
e.printStackTrace();
}
System.out.printf("%d+%d=%d",i,j, i + j);
}
public static void add2(){
InputData input = new InputData();
int i = input.getInt("请输入第一个数字:" , "输入的数据必须为数字,请重新输入!" );
int j = input.getInt("请输入第二个数字:" , "输入的数据必须为数字,请重新输入!" );
System.out.printf("%d+%d=%d",i,j, i + j);
}
public static void main(String[] args) {
//add1();
add2();
}
}
/**
* 封装屏幕输入数据算法的类
* 在实际开发中很难一次性设计出完整的类,首先要完成基本功能的实现
* 可以对此类进行扩展,实现整数、小数、字符串、日期类型的输入
* @author gs
*
*/
class InputData{
private BufferedReader bf ;
public InputData() {
bf = new BufferedReader(new InputStreamReader(System.in));
}
public String getString(String info){
System.out.println(info);
String str = "";
try {
str = bf.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return str;
}
public int getInt(String info,String err){
int temp = 0;
boolean flag = true;
String str = "";
while(flag){
str = this.getString(info);
if (str.matches("^\\d+$")) {
temp = Integer.parseInt(str);
flag = false;
}else {
System.out.println(err);
}
}
return temp;
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。