Java IO--IO操作实例:加法操作、菜单显示

实例一:加法操作

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)) ;
	}
};

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 ;
	}
};

调用InputData完成加法:

import java.io.* ;
public class ExecDemo02{
	public static void main(String args[]) throws Exception{
		int i = 0 ;
		int j = 0 ;
		InputData input = new InputData() ;
		i = input.getInt("请输入第一个数字:","输入的数据必须是数字,请重新输入!") ;
		j = input.getInt("请输入第二个数字:","输入的数据必须是数字,请重新输入!") ;
		System.out.println(i + " + " + j + " = " + (i + j)) ;
	}
};

测试类:

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() ;
	}
};
时间: 2024-11-18 10:12:31

Java IO--IO操作实例:加法操作、菜单显示的相关文章

Java基础-22总结登录注册IO版,数据操作流,内存操作流,打印流,标准输入输出流,转换流,随机访问流,合并流,序列化流,Properties

你需要的是什么,直接评论留言. 获取更多资源加微信公众号"Java帮帮" (是公众号,不是微信好友哦) 还有"Java帮帮"今日头条号,技术文章与新闻,每日更新,欢迎阅读 学习交流请加Java帮帮交流QQ群553841695 分享是一种美德,分享更快乐! 1:登录注册IO版本案例(掌握) 要求,对着写一遍. cn.itcast.pojo User cn.itcast.dao UserDao cn.itcast.dao.impl UserDaoImpl(实现我不管)

java序列化与反序列化操作实例分析_java

本文实例分析了java序列化与反序列化操作.分享给大家供大家参考,具体如下: 概述: Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程. 示例代码: import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.i

Java实现用Mysql存取图片操作实例_java

1.MySQL中的BLOB类型 Mysql中可以存储大文件数据,一般使用的BLOB对象.如图片,视频等等. BLOB是一个二进制大对象,可以容纳可变数量的数据.因为是二进制对象,所以与编码方式无关.有4种BLOB类型:TINYBLOB.BLOB.MEDIUMBLOB和LONGBLOB.它们只是可容纳值的最大长度不同. 四种字段类型保存的最大长度如下: 复制代码 代码如下: TINYBLOB - 255 bytes BLOB - 65535 bytes(64KB) MEDIUMBLOB - 16,

Mybatis中的resultType和resultMap查询操作实例详解_java

resultType和resultMap只能有一个成立,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,resultMap解决复杂查询是的映射问题.比如:列名和对象属性名不一致时可以使用resultMap来配置:还有查询的对象中包含其他的对象等. MyBatisConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configura

对象-java中io等非托管资源close与赋值为null有什么区别

问题描述 java中io等非托管资源close与赋值为null有什么区别 io操作如果没有close而直接赋值为null有什么后果,而close之后又没有赋值为null,也就是还有对象的引用,那这个对象会不会释放内存,垃圾回收器会不会回收它 Reader reader = new InputstreamReader(new FileInputStream()); 如果reader.close()关闭了reader的资源 则FileInputStream的资源有没有关闭 ,没关闭的话如何关闭 解决

Java I/O底层原理及操作

缓冲与缓冲的处理方式,是所有I/O操作的基础.术语"输入.输出"只对数据移入和移出缓存有意义.任何时候都要把它记在心中.通常,进程执行操作系统的I/O请求包括数据从缓冲区排出(写操作)和数据填充缓冲区(读操作).这就是I/O的整体概念.在操作系统内部执行这些传输操作的机制可以非常复杂,但从概念上讲非常简单.我们将在文中用一小部分来讨论它. 上图显示了一个简化的"逻辑"图,它表示块数据如何从外部源,例如一个磁盘,移动到进程的存储区域(例如RAM)中.首先,进程要求其缓

Java I/O技术之文件操作详解_java

在java程序设计中,I/O操作是通过java.io包中的类和接口来实现的,因此,我们第一步要做的就是import这个包. java.io提供了一个File类,这是类很容易让人产生误会,它表示的是一个文件名或者目录名,而不是文件本身,所以通过这个类没法对文件里面的数据进行操作.File类提供了一序列对文件操作的功能:删除文件,创建目录,查询文件大小等等.要想对文件数据进行操作那就需要流对象了,在这里就暂时不做介绍. 下面通过一个叫做FileExtension类来对File类中的各种操作进行封装,

Java 中对文件的读写操作之比较

比较 Java 中对文件的读写操作之比较 作者:Jeru Liu日期:November 29,2000版本:1.0 Java 对文件进行读写操作的例子很多,让初学者感到十分困惑,我觉得有必要将各种方法进行一次分析,归类,理清不同方法之间的异同点. 一.在 JDK 1.0 中,通常是用 InputStream & OutputStream 这两个基类来进行读写操作的.InputStream 中的 FileInputStream 类似一个文件句柄,通过它来对文件进行操作,类似的,在 OutputSt

彻底明白Java的IO系统

转自--豆豆技术网络(http://www.ddvip.net/program/java/index1/61.htm) 一. Input和Output1. stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源.在Java的IO中,所有的stream(包括Input和Out stream)都包括两种类型:1.1 以字节为导向的stream以字节为导向的stream,表示以字节为单位从stream中读取或往stream中写入信息.以字节为导向的stream包括下面几种类型: