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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。