思路
需求:实现员工信息的增删改查。
添加员工信息:
1.通过FileWriter将从键盘录入的员工信息写入到文件中。(能够保存数据)
2.创建员工类,创建Set集合,以行数读出文件中的员工信息得到员工信息字符串,以split拆分字符串得到字符串数组,按角标将数据赋值给员工类对象。将员工对象添加进Set集合。
查询所有员工的信息
1.通过FileReader将文件信息读出到Set集合中遍历输出
查询指定员工的信息
以指定的工号判断查询并打印输出。
删除指定员工的信息
1.读出文件的员工信息。
2.存入Set集合中。
3.以工号查询指定员工,从集合中remove指定员工。
4.写入文件。
修改指定员工信息
1.读出文件的员工信息。
2.存入Set集合中。
3.以工号查询指定员工,修改指定员工信息。
4.写入文件。
详细代码+注释详解:
public class EmpTest {
static Scanner input=new Scanner(System.in);
public static void main(String[] args) {
login();
}
/***
* 实现员工管理的菜单界面
* @param args
*/
public static void menu() {
while(true) {
System.out.println("****************员工信息管理系统*****************");
System.out.println("1 员工信息的录入\n");
System.out.println("2 查询所有员工信息\n");
System.out.println("3 查询某个员工信息\n");
System.out.println("4 更新某个员工信息\n");
System.out.println("5 删除某个员工信息\n");
System.out.println("6 退出管理系统\n");
System.out.println("**********************************************");
//接收员工的操作
Integer op=input.nextInt();
switch(op) {
case 1:
inputEmp();
break;
case 2:
List<Emp> list=loadEmmpsList(); //查询所有员工信息
for(Emp e:list) {
System.out.println(e);
}
break;
case 3:
loadEmp(); //查询某个员工信息
break;
case 4:
updateEmp1(); //更新员工信息
break;
case 5:
deleteEmp(); //删除员工
break;
case 8:
System.out.println("退出系统,bye......");
System.exit(1); //退出系统
}
}
}
//录入
public static void inputEmp1() {
try {
//创建FileWriter对象
FileWriter fw=new FileWriter("D:/test2/emp.txt",true);
while(true) {
//输入员工编号
System.out.println("输入员工编号:");
Integer id=input.nextInt();
//输入员工姓名
System.out.println("输入员工姓名:");
String name=input.next();
//输入员工年龄
System.out.println("输入员工年龄:");
Integer age=input.nextInt();
//输入员工性别
System.out.println("输入员工性别:");
String sex=input