Java IO操作——JAVA输入数据操作实例
来源:互联网 发布:深圳网络问政平台 编辑:程序博客网 时间:2024/05/22 04:10
学习目标
掌握JAVA输入数据的操作实例
实例操作一:加法操作
现在要求从键盘输入两个数字,之后完成两个整数的加法操作。因为从键盘接受过来的内容全部是采用字符串的形式存放的,所以此时,直接将字符串通过包装类Integer将字符串变成基本数据类型。
实例操作二:菜单显示
使用IO操作完成一个简单的菜单程序,如下所示:
本实例主要采用的知识
1、键盘输入数据的标准格式。
2、日期的转换,以及包装类的使用。
3、类的设计思路。
加法操作:
加法就是输入两个数字,之后进行加法操作。
学习方法分析:遇到问题之后,先开发出一个简单的模型来。
import java.io.* ;public class ExecDemo01{public static void main(String args[]) throws Exception{int i = 0 ;int j = 0 ;BufferedReader buf = null ;// 接收键盘的输入数据buf = new BufferedReader(new InputStreamReader(System.in)) ;String str = null ;// 接收数据System.out.print("请输入第一个数字:") ;str = buf.readLine() ;// 接收数据i = Integer.parseInt(str) ;// 将字符串变为整数System.out.print("请输入第二个数字:") ;str = buf.readLine() ;// 接收数据j = Integer.parseInt(str) ;// 将字System.out.println(i + " + " + j + " = " + (i + j)) ;}};
以上代码确实实现了功能,但是有以下问题:
1、现在的信息是由用户输入的,用户输入的如果不是数字就会出现异常
2、本程序只能输入整数
3、代码重复。一使用输入数据,则肯定使用BufferedReader,所以代码重复了。
此时,需要对类进行更加合理的划分。
输入数据,最常见的可能是:整数、小数、日期,所以最好将其设计出一个专门输入数据的类型,完成输入数据的功能,而且在此类中还可以对输入的数据进行验证。
下面:完成专门处理输入数据的类。
import java.io.* ;import java.util.* ;import java.text.* ;public class InputData{private BufferedReader buf = null ;public InputData(){// 只要输入数据就要使用此语句this.buf = new BufferedReader(new InputStreamReader(System.in)) ;}public String getString(String info){// 得到字符串信息String temp = null ;System.out.print(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 = 0 ;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 temp = null ;String str = null ;boolean flag = true ;// 定义一个标记位while(flag){str = this.getString(info) ;// 接收数据if(str.matches("^\\d{4}-\\d{2}-\\d{2}$")){// 判断是否由数字组成SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd") ;try{temp = sdf.parse(str) ;// 将字符串变为Date型数据}catch(Exception e){}flag = false ;// 结束循环}else{System.out.println(err) ;// 打印错误信息}}return temp ;}};测试类:
import java.io.* ;import java.util.* ;public class TestInput{public static void main(String args[]) throws Exception{InputData input = new InputData() ;// float f = input.getFloat("请输入小数:","输入的不是小数,请重新输入!") ;// System.out.println("小数:" + f) ;Date d = input.getDate("请输入日期,格式为(yyyy-mm-dd):","输入的日期格式不正确,请重新输入") ;System.out.println("日期" + d) ;}};在以上操作中,字符串—>日期的转换操作非常重要。在日后的开发中非常重要。
菜单显示:菜单显示在各个系统中国都是比较常见的功能。
现在是要求一个菜单的显示,但是实际上每个选项之后都肯定会有自己的若干操作,建立以下几个类:
Menu(专门显示菜单信息) —> Operate(表示操作类)
Operate类:
public class Operate{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("** 选择的是查看操作") ;}};需要一个Menu类显示菜单,但是在显示的时候因为每一操作完成之后都应该把菜单显示出来,所以肯定是循环调用的过程。
public class Menu{public Menu(){while(true){this.show() ;// 无限制调用菜单的显示}}public void show(){System.out.println("===== Xxx系统 =====") ;System.out.println(" [1]、增加数据") ;System.out.println(" [2]、删除数据") ;System.out.println(" [3]、修改数据") ;System.out.println(" [4]、查看数据") ;System.out.println(" [0]、系统退出\n") ;InputData input = new InputData() ;int i = input.getInt("请选择:","请输入正确的选项!") ;switch(i){case 1:{Operate.add() ;// 调用增加操作break ;}case 2:{Operate.delete() ;// 调用删除操作break ;}case 3:{Operate.update() ;// 调用更新操作break ;}case 4:{Operate.find() ;// 调用查看操作break ;}case 0:{System.exit(1) ;// 系统退出break ;}default:{System.out.println("请选择正确的操作!") ;}}}};测试类:
import java.io.* ;public class ExecDemo03{public static void main(String args[]) throws Exception{new Menu() ;}};之所以要有操作类,是为了以后扩充方便。
总结:
在开发中一定要先完成功能,之后再考虑类的设计。
主方法就是一个客户端,代码越少越好。
0 0
- Java IO操作——JAVA输入数据操作实例
- java IO操作实例
- java io 操作实例
- Java IO实例操作
- java io 操作实例
- Java—IO操作
- java输入数据操作
- java.io操作实例代码
- Java IO _操作实例
- Java IO ——实例操作:单人信息管理程序
- Java IO ——实例操作:投票程序
- Java IO操作——投票程序实例
- Java IO操作——专门的数据输入类Scanner(java.util工具包中)的具体使用
- java-IO操作——使用字节流读写数据
- Java IO--IO操作实例:加法操作、菜单显示
- JAVA IO流操作 输入、输出流。
- Java IO操作的实例代码
- Java的IO操作实例代码
- Java值传递和引用传递
- cocos2d 动画
- C++易混点——深度解析指针悬挂和虚析构函数
- [DllImport("User32")],[DllImport("user32.dll", EntryPoint = "mouse_event")]
- Sping Data Redis 使用事务时,不关闭连接的问题
- Java IO操作——JAVA输入数据操作实例
- Android中的设计模式
- 深深地掉入一个叫做同源跨域的大坑,到现在还没有走出来
- 知乎网站搜索引擎与网络爬虫-备份
- drools 6学习2--伟大的hello world
- PHP7下安装Yaf
- HDUOJ 2089 - 不要62
- Google Java编程风格指南
- Android Studio项目引入外部库注意事项(PullToRefresh)以及如何引入开源库