Java实现单人信息管理程序
本文实例为大家分享了Java实现单人信息管理程序的具体代码,供大家参考,具体内容如下
对前一个菜单程序进行扩充,要求增加一个人的完整信息,人的信息包括姓名和年龄。保存后也可以修改、删除、查询此信息。
可以使用对象序列化保存,需要增加文件操作类,专门负责保存和读取文件的内容,并修改Operate类,为其增加具体的操作:
文章目录
一、增加文件操作类
二、Person类
三、操作类
一、增加文件操作类
packageChapter_9; importjava.io.*; //此类专门用于保存和读取对象 publicclassFileOperate{ privateFilefile=null;//定义一个文件对象 publicFileOperate(StringpathName){//通过构造方法传递文件路径 this.file=newFile(pathName);//实例化File对象 } publicbooleansave(Objectobj)throwsException{//可以保存对象 ObjectOutputStreamoos=null;//对象输出流 booleanflag=false;//定义操作标志位 try{ oos=newObjectOutputStream(newFileOutputStream(this.file));//实例化对象输出流 oos.writeObject(obj);//保存对象 flag=true; }catch(Exceptione){ throwe;//有异常抛出 }finally{ if(oos!=null){//判断对象输出流对象是否被实例化 oos.close();//不管是否有异常都要关闭 } } returnflag; } publicObjectload()throwsException{//读取对象 Objectobj=null;//接收保存的对象 ObjectInputStreamois=null;//声明对象输入流 try{ ois=newObjectInputStream(newFileInputStream(this.file));//实例化对象输入流 obj=ois.readObject();//读取对象 }catch(Exceptione){ throwe; }finally{ if(ois!=null){//判断输入流是否被实例化 ois.close();//关闭输入流 } } returnobj; } }
程序中的类的功能就是向程序中写入对象和读取对象,在操作时只需要传入一个路径即可
二、Person类
importjava.io.*; publicclassPersonimplementsSerializable{//此类的对象可以被序列化 privateStringname; privateintage; publicPerson(Stringname,intage){//通过构造方法设置属性内容 this.name=name; this.age=age; } publicStringtoString(){ return"姓名:"+this.name+";年龄:"+this.age; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ this.age=age; } }
三、操作类
packageChapter_9; publicclassOperate{ publicstaticvoidadd(){//增加数据操作 InputDatainput=newInputData();//实例化输入数据对象 FileOperatefo=newFileOperate("D://test.txt"); Stringname=input.getString("请输入姓名:"); intage=input.getInt("请输入年龄:","年龄必须是数字!"); Personper=newPerson(name,age);//实例化Person对象 try{ fo.save(per);//保存对象 }catch(Exceptione){ e.printStackTrace(); } System.out.println("信息增加成功"); } publicstaticvoiddelete(){//删除数据操作 FileOperatefo=newFileOperate("D://test.txt"); try{ fo.save(null);//清除对象 }catch(Exceptione){ e.printStackTrace(); } System.out.println("信息删除成功!"); } publicstaticvoidupdate(){//修改数据操作 InputDatainput=newInputData();//实例化输入数据对象 FileOperatefo=newFileOperate("D:\\test.txt"); Personper=null; try{ per=(Person)fo.load();//读取数据 }catch(Exceptione1){ e1.printStackTrace(); } Stringname=input.getString("请输入新的姓名(原姓名:"+per.getName()+"):"); intage=input.getInt("请输入是新的年龄(原年龄:"+ per.getAge()+")","年龄必须是数字!"); per=newPerson(name,age);//重新实例化对象 try{ fo.save(per);//重新保存对象 }catch(Exceptione){ e.printStackTrace(); } System.out.println("信息更新成功"); } publicstaticvoidfind(){ FileOperatefo=newFileOperate("D:\\test.txt"); Personper=null; try{ per=(Person)fo.load();//读取对象 }catch(Exceptione1){ e1.printStackTrace(); } System.out.println(per); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。