员工管理系统(集合与IO流的结合使用 beta4.0 ObjectInputStream/ ObjectOutputStream)
- package cn.employee_io;
- import java.io.Serializable;
- public class Employee implements Serializable{
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private String empId;
- private String name;
- private int age;
- private double salary;
- public Employee() {
- super();
- }
- public Employee(String empId, String name, int age, double salary) {
- super();
- this.empId = empId;
- this.name = name;
- this.age = age;
- this.salary = salary;
- }
- public String getEmpId() {
- return empId;
- }
- public void setEmpId(String empId) {
- this.empId = empId;
- }
- 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 double getSalary() {
- return salary;
- }
- public void setSalary(double salary) {
- this.salary = salary;
- }
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((empId == null) ? 0 : empId.hashCode());
- return result;
- }
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- Employee other = (Employee) obj;
- if (empId == null) {
- if (other.empId != null)
- return false;
- } else if (!empId.equals(other.empId))
- return false;
- return true;
- }
- public String toString() {
- return empId + "," + name + "," + age+ "," + salary;
- }
- }
Employee.java
- package cn.employee_io;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.util.LinkedList;
- import java.util.List;
- public class Service {
- List<Employee> list = new LinkedList<Employee>();
- File file = null;
- ObjectInputStream ois = null;
- ObjectOutputStream oos = null;
- boolean flag=false;
- public Service() throws IOException, ClassNotFoundException {
- reader();
- }
- /**
- * 读文件
- * @throws IOException
- * @throws ClassNotFoundException
- */
- @SuppressWarnings("unchecked")
- public void reader() throws IOException, ClassNotFoundException {//ObjectInputStream先写后读
- file = new File("src/cn/employee_io/emp.txt");
- if (!file.exists()) {
- writer();
- }else{
- ois = new ObjectInputStream(new FileInputStream(file));
- list = (List<Employee>) ois.readObject(); // 给list赋值
- ois.close();
- }
- }
- /**
- * 写文件
- * @throws IOException
- * @throws ClassNotFoundException
- */
- public void writer() throws IOException, ClassNotFoundException {
- file = new File("src/cn/employee_io/emp.txt");
- oos = new ObjectOutputStream(new FileOutputStream(file));
- oos.writeObject(list);
- oos.flush();
- oos.close();
- }
- /**
- * 添加员工
- * @param e
- * @throws ClassNotFoundException
- * @throws IOException
- */
- public void add(Employee e) throws ClassNotFoundException, IOException {
- if (!list.contains(e)) {
- list.add(e);
- writer();
- System.out.println("添加成功!");
- } else {
- System.out.println("添加失败!");
- }
- }
- /**
- * 查询所有员工
- */
- public void queryAll(){
- System.out.println("编号 "+"姓名 "+"年龄 "+"薪资");
- for(Employee e:list){
- System.out.println(e.getEmpId()+" "+e.getName()+" "+e.getAge()+" "+e.getSalary());
- }
- }
- /**
- * 查询单个员工
- * @param empId
- */
- public void query(String empId){
- for(int i=0;i<list.size();i++){
- if(list.get(i).getEmpId().equals(empId)){
- System.out.println("编号 "+"姓名 "+"年龄 "+"薪资");
- System.out.println(list.get(i).getEmpId()+" "+list.get(i).getName()+" "+list.get(i).getAge()+" "+list.get(i).getSalary());
- }
- }
- }
- /**
- * 删除员工
- * @throws IOException
- * @throws ClassNotFoundException
- */
- public void delete(String empId) throws ClassNotFoundException, IOException{
- for(int i=0;i<list.size();i++){
- if(list.get(i).getEmpId().equals(empId)){
- list.remove(list.get(i));
- writer();
- System.out.println("删除成功!");
- break;
- }
- if((i==list.size()-1)&&(!list.get(i).getEmpId().equals(empId))){
- System.out.println("删除失败!");
- }
- }
- }
- /**
- * 修改员工
- * @throws IOException
- * @throws ClassNotFoundException
- */
- public void update(Employee emp) throws ClassNotFoundException, IOException{
- for(int i=0;i<list.size();i++){
- if(list.get(i).getEmpId().equals(emp.getEmpId())){
- list.get(i).setName(emp.getName());
- list.get(i).setAge(emp.getAge());
- list.get(i).setSalary(emp.getSalary());
- writer();
- System.out.println("修改成功!");
- }
- if((i==list.size()-1)&&(!list.get(i).getEmpId().equals(emp.getEmpId()))){
- System.out.println("修改失败!");
- }
- }
- }
- }
Service.java
- package cn.employee_io;
- import java.io.IOException;
- import java.util.Scanner;
- public class TestEmp {
- static Scanner sc = new Scanner(System.in);
- static String empId;
- static String name;
- static int age;
- static double salary;
- static int num;
- public static void main(String[] args) throws ClassNotFoundException, IOException {
- Service s=new Service();
- ok: for (;;) {
- printOptions();
- num = sc.nextInt();
- if (num < 1 || num > 6) {
- System.out.println("输入有误,将重新开始选择!");
- break ok;
- }
- switch (num) {
- case 1:
- printEmpNo();
- printName();
- s.add(new Employee(empId,name,age,salary));
- break;
- case 2:
- s.queryAll();
- break;
- case 3:
- printEmpNo();
- s.query(empId);
- break;
- case 4:
- printEmpNo();
- s.delete(empId);
- break;
- case 5:
- printEmpNo();
- printName();
- s.update(new Employee(empId,name,age,salary));
- break;
- case 6:
- return;
- }
- }
- }
- public static void printOptions() {
- 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("6.退出");
- System.out.println("请输入你要进行的操作:");
- }
- public static void printEmpNo() {
- System.out.println("请输入员工编号:");
- empId = sc.next();
- }
- public static void printName() {
- System.out.println("请输入员工姓名:");
- name = sc.next();
- System.out.println("请输入员工年龄:");
- age = sc.nextInt();
- System.out.println("请输入员工薪资:");
- salary=sc.nextDouble();
- }
- }
TestEmp.java
员工管理系统(集合与IO流的结合使用 beta4.0 ObjectInputStream/ ObjectOutputStream)的更多相关文章
- 员工管理系统(集合与IO流的结合使用 beta2.0 ObjectInputStream/ ObjectOutputStream)
package cn.employee; import java.io.Serializable; public class Employee implements Serializable{ pri ...
- 员工管理系统(集合与IO流的结合使用 beta3.0 BufferedReader / ObjectOutputStream)
Employee.java package cn.employee_io; public class Employee { private String empId; private String n ...
- 员工管理系统(集合与IO流的结合使用 beta5.0 BufferedReader/ BufferedWriter)
package cn.gee; public class Emp { private String id;//员工编号 一般是唯一的 private String sname; private int ...
- 员工管理系统(集合与IO流的结合使用 beta1.0 ArrayList<Employee>)
package cn.employee; public class Employee { private int empNo; private String name; private String ...
- Java集合、IO流、线程知识
一.集合: 1. 集合框架: 1)Collection (1)List:有序的,有索引,元素可重复. (add(index, element).add(index, Collection).remov ...
- Properties集合与IO流
package com.itheima.demo07.Prop; import java.io.FileOutputStream; import java.io.FileReader; import ...
- Io流阶段大总结
字节流结构 输入流: ObjectInputStream:从文件中读取对象 FileInputStream:从文件中输入(读)字节 BufferedInputStream:底层有缓冲数组,在不定义数组 ...
- Java进阶 | IO流核心模块与基本原理
一.IO流与系统 IO技术在JDK中算是极其复杂的模块,其复杂的一个关键原因就是IO操作和系统内核的关联性,另外网络编程,文件管理都依赖IO技术,而且都是编程的难点,想要整体理解IO流,先从Linux ...
- Java IO流
File类 ·java.io.File类:文件和目录路径名的抽象表示形式,与平台无关 ·File能新建.删除.重命名文件和目录,但File不能访问文件内容本身.如果需要访问文件内容本身,则需要使用输入 ...
随机推荐
- 避免使用vector<bool>
作为一个STL容器,vector<bool>仅仅有两点不正确. 首先.它不是一个STL容器. 其次,它并不存储bool.除此之外.一切正常. 一个对象要成为容器,就必须满足C++标准 ...
- soapUI系列之—-05 JDBC Request & Xpath Match
一.配置JDBC Connection String 1. 以Oracle为例,要使用JDBC数据库就要先下一个 oracle JDBC的驱动,下载成功后把它放到soapUI安装目录下的 bin/e ...
- MyEclipse搭建SSH(Struts2+Spring2+Hibernate3)框架项目教程
对Struts.spring.hibernate大体上了解一遍后,就是针对这个几个框架的整合了. 怎样整合,请看以下: 第一:Struts2的jar和xml配置文件: jar包: commons-fi ...
- IOS开发基础之—MD5加密算法【转】
原文地址:http://blog.csdn.net/pjk1129/article/details/6855024 #import <CommonCrypto/CommonDigest.h> ...
- [办公自动化]计算机突然断电,微软office文档(有asd文件)如何恢复?
今天同事使用office软件时,突然故障.结果他忙了半天的word文档内容都找不见了. 经过查找,在其硬盘根目录找到了asd文档. 但是用当前版本的word和高版本的word软件都无法打开. 又查找了 ...
- UVA11383 Golden Tiger Claw —— KM算法
题目链接:https://vjudge.net/problem/UVA-11383 题解: 根据KM()算法,标杆满足:l(x) + l(y) >= w(x, y) . 当求完最大权匹配之后,所 ...
- YTU 1005: 渊子赛马
1005: 渊子赛马 时间限制: 1000 Sec 内存限制: 64 MB 提交: 338 解决: 49 题目描述 赛马是一古老的游戏,早在公元前四世纪的中国,处在诸侯割据的状态,历史上称为&qu ...
- OpenMediaVault 系统安装问题
/********************************************************************* * OpenMediaVault 系统安装问题 * 说明: ...
- 并不对劲的p3709:大爷的字符串题
题目大意 区间众数 题解 莫队 代码 #include<algorithm> #include<cmath> #include<cstdio> #include&l ...
- HDU4704:Sum(欧拉降幂公式)
Input 2 Output 2 Sample Input 2 由公式,ans=2^(N-1)%Mod=2^((N-1)%(Mod-1)+(Mod-1)) %Mod. 注意:降幂的之后再加一个Mod- ...