Java实现单人信息管理程序

网友投稿 265 2022-12-14


Java实现单人信息管理程序

本文实例为大家分享了java实现单人信息管理程序的具体代码,供大家参考,具体内容如下

对前一个菜单程序进行扩充,要求增加一个人的完整信息,人的信息包括姓名和年龄。保存后也可以修改、删除、查询此信息。<

可以使用对象序列化保存,需要增加文件操作类,专门负责保存和读取文件的内容,并修改 Operate 类,为其增加具体的操作:

文章目录

一、增加文件操作类

二、 Person 类

三、操作类

一、增加文件操作类

package Chapter_9;

import java.io.*;

//此类专门用于保存和读取对象

public class FileOperate {

private File file = null;//定义一个文件对象

public FileOperate(String pathName){//通过构造方法传递文件路径

this.file = new File(pathName);//实例化File对象

}

public boolean save(Object obj) throws Exception{//可以保存对象

ObjectOutputStream oos = null;//对象输出流

boolean flag = false;//定义操作标志位

try{

oos = new ObjectOutputStream(new FileOutputStream(this.file));//实例化对象输出流

oos.writeObject(obj);//保存对象

flag = true;

}catch (Exception e){

throw e;//有异常抛出

}finally {

if (oos != null){//判断对象输出流对象是否被实例化

oos.close();//不管是否有异常都要关闭

}

}

return flag;

}

public Object load()throws Exception{//读取对象

Object obj = null;//接收保存的对象

ObjectInputStream ois = null;//声明对象输入流

try{

ois = new ObjectInputStream(new FileInputStream(this.file));//实例化对象输入流

obj = ois.readObject();//读取对象

}catch (Exception e){

throw e;

}finally {

if (ois !=null){//判断输入流是否被实例化

ois.close();//关闭输入流

}

}

return obj;

}

}

程序中的类的功能就是向程序中写入对象和读取对象,在操作时只需要传入一个路径即可

二、 Person 类

import java.io.*;

public class Person implements Serializable {//此类的对象可以被序列化

private String name;

private int age;

public Person(String name,int age){//通过构造方法设置属性内容

xkovP this.name = name;

this.age = age;

}

public String toString(){

return "姓名:" + this.name + "; 年龄:" + this.age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

三、操作类

package Chapter_9;

public class Operate {

public static void add(){//增加数据操作

InputData input = new InputData();//实例化输入数据对象

FileOperate fo = new FileOperate("D://test.txt");

String name = input.getString("请输入姓名:");

int age = input.getInt("请输入年龄:","年龄必须是数字!");

Person per = new Person(name,age);//实例化 Person 对象

try {

fo.save(per);//保存对象

}catch (Exception e){

e.printStackTrace();

}

System.out.println("信息增加成功");

}

public static void delete(){//删除数据操作

FileOperate fo = new FileOperate("D://test.txt");

try{

fo.save(null);//清除对象

}catch (Exception e){

e.printStackTrace();

}

System.out.println("信息删除成功!");

}

public static void update(){//修改数据操作

InputData input = new InputData();//实例化输入数据对象

FileOperate fo = new FileOperate("D:\\test.txt");

Person per = null;

try{

per = (Person)fo.load();//读取数据

}catch (Exception e1){

e1.printStackTrace();

}

String name = input.getString("请输入新的姓名(原姓名:" + per.getName() + "):");

int age = input.getInt("请输入是新的年龄(原年龄:" +

per.getAge() + ")","年龄必须是数字!");

per = new Person(name,age);//重新实例化对象

try{

fo.save(per);//重新保存对象

}catch (Exception e){

e.printStackTrace();

}

System.out.println("信息更新成功");

}

public static void find(){

FileOperate fo = new FileOperate("D:\\test.txt");

Person per = null;

try{

per = (Person)fo.load();//读取对象

}catch (Exception e1){

e1.printStackTrace();

}

System.out.println(per);

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring MVC获取查询参数及路径参数代码实例
下一篇:MyBatis传入数组集合类并使用foreach遍历
相关文章

 发表评论

暂时没有评论,来抢沙发吧~