• BufferedReader类


    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("请选择正确的操作");
    			}
    		}
    	}
    
    }
    
  • 相关阅读:
    误操作 rpm -e --nodeps zlib
    Raid阵列之简单介绍
    GpG使用指南
    hadoop系统的端口
    网站日志流量复杂分析
    Flume在企业大数据仓库架构中位置及功能
    Hue的安装与部署
    Hive中的数据倾斜
    Hive的三种Join方式
    如何每日增量加载数据到Hive分区表
  • 原文地址:https://www.cnblogs.com/tonglin0325/p/5277737.html
Copyright © 2020-2023  润新知