需求
键盘录入个员工信息(工号,姓名,年龄,居住地)存入集合。然后遍历集合把每一个员工信息存入文本文件,实现基本的功能,增删改查,保存到文件,从文件读取。
基本结构
- 开发工具
- 创建员工
- 查询员工
- 添加员工
- 删除员工
- 修改员工
- 退出系统
开发工具
IntelliJ IDEA 2019
创建员工类
员工有工号,姓名,年龄,地址等。提供一些get和set方法,对外访问。
public class Employee {
//员工工号
private String jobNumber;
//员工姓名
private String name;
//员工年龄
private int age;
//员工地址
private String address;
public Employee() {
}
public Employee(String jobNumber, String name, int age, String address) {
this.jobNumber = jobNumber;
this.name = name;
this.age = age;
this.address = address;
}
public String getJobNumber() {
return jobNumber;
}
public void setJobNumber(String jobNumber) {
this.jobNumber = jobNumber;
}
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;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
管理界面
欢迎界面,选择所需功能。实现对应的方法。
while (true) {
System.out.println("******欢迎使用员工管理系统******");
System.out.println("1.查询所有员工");
System.out.println("2.添加员工");
System.out.println("3.删除员工");
System.out.println("4.修改员工");
System.out.println("5.退出系统");
System.out.println("请输入您的选择");
Scanner sc=new Scanner(System.in);
String select=sc.nextLine();
switch (select) {
case "1":
//查询所有员工
findAllEmployee(fileName);
break;
case "2":
addEmployee(fileName);
break;
case "3":
deleteEmployee(fileName);
break;
case "4":
updateEmployee(fileName);
break;
case "5":
default:
System.out.println("欢迎下次使用");
System.exit(0);
break;
}
}
添加员工
添加员工信息,创建集合,添加到文件。
public static void addEmployee(String fileName) throws IOException {
//创建集合对象
ArrayList<Employee> arrayList=new ArrayList<>();
//从文件中将数据读取
readData(fileName,arrayList);
//创建键盘录入对象
Scanner sc=new Scanner(System.in);
String jobNumber;
while (true){
boolean flag=false;
System.out.println("请您输入员工工号");
jobNumber=sc.next();
for (int i = 0; i < arrayList.size(); i++) {
Employee employee=arrayList.get(i);
if(jobNumber.equals(employee.getJobNumber())){
flag=true;
break;
}
}
if(flag){
System.out.println("对不起!您输入的工号已经被占用了");
}else{
break;
}
}
System.out.println("请您输入员工姓名");
String name=sc.next();
System.out.println("请您输入员工年龄");
int age=sc.nextInt();
System.out.println("请您输入员工居住地");
String address=sc.next();
//创建员工
Employee e=new Employee(jobNumber,name,age,address);
arrayList.add(e);
//把集合写到文件中
wirterData(fileName,arrayList);
//提示
System.out.println("添加成功!");
}
删除员工
删除员工信息,文件读取,遍历,判断删除。
public static void deleteEmployee(String fileName) throws IOException {
//创建集合对象
ArrayList<Employee> arrayList=new ArrayList<>();
//从文件中将数据读取
readData(fileName,arrayList);
int index=-1;
//创建键盘录入对象
Scanner sc=new Scanner(System.in);
System.out.println("请您输入要删除的员工工号");
String jobNumber = sc.next();
//要判断这个员工是否存在
for (int i = 0; i < arrayList.size(); i++) {
Employee e=arrayList.get(i);
if(jobNumber.equals(e.getJobNumber())){
index=i;
break;
}
}
if(index==-1){
System.out.println("对不起!您要删除工号不存在,请您重新选择您的操作!!");
}else{
arrayList.remove(index);
//把集合写出到文件中
wirterData(fileName,arrayList);
//提示
System.out.println("删除成功!");
}
}
修改员工
修改员工信息,文件读取,遍历判断,更新信息。
public static void updateEmployee(String fileName) throws IOException {
//创建集合对象
ArrayList<Employee> arrayList=new ArrayList<>();
//从文件中将数据读取
readData(fileName,arrayList);
int index=-1;
//创建键盘录入对象
Scanner sc=new Scanner(System.in);
System.out.println("请您输入要修改的员工工号");
String jobNumber = sc.next();
//要判断这个员工是否存在
for (int i = 0; i < arrayList.size(); i++) {
Employee e=arrayList.get(i);
if(jobNumber.equals(e.getJobNumber())){
index=i;
break;
}
}
if(index==-1){
System.out.println("对不起!您要修改的工号不存在,请您重新选择您的操作!!");
}else{
System.out.println("请您输入新员工姓名");
String name=sc.next();
System.out.println("请您输入新员工年龄");
int age=sc.nextInt();
System.out.println("请您输入新员工居住地");
String address=sc.next();
//创建新的员工对象
Employee e=new Employee(jobNumber,name,age,address);
//完成修改
arrayList.set(index,e);
//把集合写出到文件
wirterData(fileName,arrayList);
//提示
System.out.println("员工信息修改成功!");
}
}
查询员工
查询员工信息,文件读取,遍历。
public static void findAllEmployee(String fileName) throws IOException {
//创建集合对象
ArrayList<Employee> arrayList=new ArrayList<>();
//从文件中将数据读取
readData(fileName,arrayList);
//容器当中没有员工信息
if(arrayList.size()==0){
System.out.println("抱歉,当前没员工信息");
//结束方法
return;
}
System.out.println("工号"+" "+"姓名"+" "+"年龄"+" "+"居住地");
for (int i = 0; i < arrayList.size(); i++) {
Employee e=arrayList.get(i);
System.out.println(e.getJobNumber()+" "+e.getName()+" "+e.getAge()+" "+e.getAddress());
}
}
文件读取
从文件读取
public static void readData(String filNname,ArrayList<Employee> arrayList) throws IOException {
BufferedReader br=new BufferedReader(new FileReader(filNname));
String line;
while ((line=br.readLine())!=null) {
if(" ".equals(line)||line.length()==0)
{
return;
}
String[] strings=line.split(",");
int age=Integer.parseInt(strings[2]);
Employee e=new Employee(strings[0],strings[1],age,strings[3]);
arrayList.add(e);
}
br.close();
}
文件写入
把集合中的数据写到文件中
public static void wirterData(String fileName,ArrayList<Employee> arrayList) throws IOException {
//创建输出流对象
BufferedWriter bw=new BufferedWriter(new FileWriter(fileName));
//遍历集合
for(int i=0;i<arrayList.size();i++){
Employee e=arrayList.get(i);
StringBuilder sb=new StringBuilder();
sb.append(e.getJobNumber()).append(",").append(e.getName()).append(",").append(e.getAge()).append(",").append(e.getAddress());
String string=sb.toString();
bw.write(string);
bw.newLine();
}
bw.close();
}
结果展示
源码整合源码链接