接员工管理系统
加入IO,使数据保存到本地。
基本原理就是程序结束时将对象写到本地,运行程序时读到程序内
其余类基本没有改变,只是在主函数内加上了IO
添加的IO功能
读取功能
private static void fetch(List<Employee> employee) {//获取文件中的信息
// TODO 自动生成的方法存根
File file = new File("D:/Test/employee.dat");
if(!file.exists()) {
System.out.println("未找到系统数据!");
}else {
InputStream is =null;
ObjectInputStream ois = null;
try {
is = new FileInputStream(file);
ois = new ObjectInputStream(is);
List<Employee> object =new ArrayList<>();
object=(List) ois.readObject();
for(Employee e:object) {
printEmployeeInfo(e);
employee.add(e);
}
} catch (FileNotFoundException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}finally {
try {
is.close();
ois.close();
file.delete();//删除文件,以便于更新,存储直接创建文件就行
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
存储功能
private static void Store(List employee) {//储存信息到文件
// TODO 自动生成的方法存根
File file = new File("D:/Test/employee.dat");
try {
file.createNewFile();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
OutputStream os = null;
ObjectOutputStream oos = null;
try {
os = new FileOutputStream(file);
oos = new ObjectOutputStream(os);
oos.writeObject(employee);
} catch (FileNotFoundException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
} catch (IOException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}finally {
try {
os.close();
oos.close();
} catch (IOException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}
}
}
主函数内IO函数位置
public static void main(String[] args) {
List employee = new ArrayList();// 存储员工
fetch(employee);//从文件读取储存下来的员工信息
int choice = 0;
while (true) {
System.out.println("************************************************");
System.out.println("* 1.添加 2.修改 3.查询 4.删除 5.排名 6.部门管理 7.退出 *");
System.out.println("************************************************");
try {
Scanner scanner = new Scanner(System.in);
System.out.println("请选择您要进行的操作:");
choice = scanner.nextInt();
if (choice==1) {// 添加
add(scanner, employee);
} else if (choice==2) {// 修改
edit(scanner, employee);
} else if (choice==3) {// 查询
find(scanner, employee);
} else if (choice==4) {
delete(scanner, employee);
} else if (choice==5) {
sort(employee);
} else if (choice==6) {
departmentmannger(employee);
}
else if (choice == 7) {
// 退出
System.out.println("感谢使用本系统");
Store(employee);//存储员工信息到文件
break;
}
}catch(Exception e) {
System.out.println("请输入正确的操作符!");
}
}
}