首先创造一个学生类:
package com.ffyc.sims.entity; import java.io.Serializable; import java.util.Date; import java.util.HashMap; import java.util.Map; public class Student implements Serializable { private String studentId; private String name; private String gender; private Map<String, Double> map = new HashMap<>(); public Student() {} public Student(String studentId) { this.studentId = studentId; } public Student(String studentId, String name, String gender) { this.studentId = studentId; this.name = name; this.gender = gender; } public String getStudentId() { return studentId; } public void setStudentId(String studentId) { this.studentId = studentId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public Map<String, Double> getMap() { return map; } public void setMap(String subject, double score) { map.put(subject,score); } @Override public String toString() { return "Student{" + "studentId='" + studentId + '\'' + ", name='" + name + '\'' + ", gender='" + gender + '\'' + ", map=" + map + '}'+'\n'; } }
之后创建一个file类型的文件:student.dat,然后再写读取数据和存储数据的方法(引用的文件地址是student.dat的地址)
package com.ffyc.sims.util; import com.ffyc.sims.entity.Student; import java.io.*; import java.util.List; public class Database { /** * 储存数据 * @param students */ public void writeStudent(List<Student> students){ try{ ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream("D:\\idea-workspace\\java0725\\src\\com\\ffyc\\sims\\resource\\student.dat") ); out.writeObject(students); out.flush(); out.close(); } catch (IOException e) { throw new RuntimeException(e); } } /** * 读取数据 * @return */ public List<Student> readStudent(){ try{ ObjectInputStream in = new ObjectInputStream( new FileInputStream("D:\\idea-workspace\\java0725\\src\\com\\ffyc\\sims\\resource\\student.dat") ); List<Student> list = (List<Student>) in.readObject(); return list; }catch (Exception e){ throw new RuntimeException(e); } } }
最后进行测试
package com.ffyc.sims.test; import com.ffyc.sims.entity.Student; import com.ffyc.sims.util.Database; import java.util.ArrayList; import java.util.List; public class TestSims { public static void main(String[] args) throws Exception{ Database database = new Database(); //List<Student> list = database.readStudent(); List<Student> list = new ArrayList<>(); Student s1 = new Student("111","小明","男"); Student s2 = new Student("112","小红","女"); Student s3 = new Student("113","小黑","男"); s1.setMap("大学物理",69.0); s2.setMap("大学英语",66.0); s3.setMap("大学体育",98.0); list.add(s1); list.add(s2); list.add(s3); //list.remove(s1); //list.remove(s2); //list.remove(s3); //List<Student> list1 = new ArrayList<>(); //Student s4 = new Student("114","小猫","男"); //s1.setMap("大学物理",99.0); database.writeStudent(list); System.out.println(database.readStudent()); } }