|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 holistic杀手 于 2022-12-20 14:31 编辑
在控制台录入的学生信息,在重新运行之后并没有写入到文件里,哪里有问题呢
- import java.io.*;
- import java.util.*;
- public class StudentInfo {
- Map<Integer,Student> studentMap = new HashMap<>();
- Scanner s = new Scanner(System.in);
- public void init(){
- Student s1 = new Student(1,"zhangsan","男","1990-10-12","zhangsan@123.com");
- Student s2 = new Student(2,"lisi","男","1990-12-12","lisi@123.com");
- Student s3 = new Student(3,"wangwu","男","1980-11-12","wangwu@123.com");
- studentMap.put(s1.getNo(),s1);
- studentMap.put(s2.getNo(),s2);
- studentMap.put(s3.getNo(),s3);
- serializable(studentMap);
- }
- //查看学生列表
- /*
- --------------------------------------------------------------------
- 学生信息列表展示
- 学号 姓名 性别
- ------------------------------------
- 1 zhangsan 男
- 2 lisi 女
- .....
- --------------------------------------------------------------------
- */
- public void checkAll(){
- Map<Integer,Student> studentMap1=deserializable();
- Set<Map.Entry<Integer,Student>> entrySet=studentMap1.entrySet();
- System.out.println("------------------------学生信息展示页面------------------------------------");
- System.out.println("学号\t\t\t姓名\t\t\t性别\t\t\t生日\t\t\t邮箱");
- for (Map.Entry<Integer,Student> node:entrySet){
- System.out.println(node.getValue());
- }
- System.out.println("---------------------------------------------------------------------------");
- }
- /*
- [2]保存学生
- */
- public void addStudent(){
- Map<Integer,Student> studentMap1=deserializable();
- System.out.println("请输入学生的信息:");
- System.out.print("学号:");
- int no=s.nextInt();
- System.out.print("姓名:");
- String name=s.next();
- System.out.print("性别:");
- String sex=s.next();
- System.out.print("生日:");
- String brith=s.next();
- System.out.print("邮箱:");
- String mailAddress=s.next();
- Student newStudent =new Student(no,name,sex,brith,mailAddress);
- studentMap1.put(no,newStudent);
- serializable(studentMap1);
- System.out.println("添加"+name+"成功");
- System.out.println("-------------------------");
- }
- public void serializable(Map<Integer,Student> studentMap){
- ObjectOutputStream oos=null;
- try {
- oos = new ObjectOutputStream(new FileOutputStream("studentsInfo"));
- oos.writeObject(studentMap);
- oos.flush();
- } catch (IOException e) {
- e.printStackTrace();
- }finally {
- if (oos!=null){
- try {
- oos.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
- public Map<Integer,Student> deserializable() {
- ObjectInputStream ois = null;
- try {
- ois = new ObjectInputStream(new FileInputStream("studentsInfo"));
- Map<Integer, Student> studentMap1 = (Map<Integer, Student>) ois.readObject();
- return studentMap1;
- } catch (IOException e) {
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } finally {
- if (ois != null) {
- try {
- ois.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- return null;
- }
- /*
- [3]删除学生
- */
- public void deleteStudent(){
- Map<Integer,Student> studentMap1=deserializable();
- System.out.print("请输入学生的学号:");
- int no=s.nextInt();
- if (no<0||no>studentMap1.size()){
- System.out.println("输入的学号不存在!");
- }else {
- studentMap1.remove(no);
- System.out.println("删除成功");
- serializable(studentMap1);
- }
- }
- public void checkStudent(){
- Map<Integer,Student> studentMap1=deserializable();
- System.out.print("请输入学生的学号:");
- int no=s.nextInt();
- if (no<0||no>studentMap1.size()){
- System.out.println("输入的学号不存在!");
- }else {
- System.out.println(
- "-----------------------------------------------"+"\n"+
- "学号:"+studentMap1.get(no).getNo()+"\n"+
- "名字:"+studentMap1.get(no).getName()+"\n"+
- "性别:"+studentMap1.get(no).getSex()+"\n"+
- "生日:"+studentMap1.get(no).getBirth()+"\n"+
- "邮箱:"+studentMap1.get(no).getMailAdress()+"\n"+
- "-----------------------------------------------"
- );
- }
- }
- }
复制代码
- import java.io.Serializable;
- import java.util.Objects;
- public class Student implements Serializable {
- private final static long serialVersionUID=12L;
- private int no;
- private String name;
- private String sex;
- private String birth;
- private String mailAdress;
- public Student(int no, String name, String sex, String birth, String mailAdress) {
- this.no = no;
- this.name = name;
- this.sex = sex;
- this.birth = birth;
- this.mailAdress = mailAdress;
- }
- public Student() {
- }
- public int getNo() {
- return no;
- }
- public void setNo(int no) {
- this.no = no;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getSex() {
- return sex;
- }
- public void setSex(String sex) {
- this.sex = sex;
- }
- public String getBirth() {
- return birth;
- }
- public void setBirth(String birth) {
- this.birth = birth;
- }
- public String getMailAdress() {
- return mailAdress;
- }
- public void setMailAdress(String mailAdress) {
- this.mailAdress = mailAdress;
- }
- @Override
- public String toString() {
- //return no+"\t\t\t"+name+"\t\t\t"+sex+"\t\t\t"+birth+"\t\t\t"+mailAdress;
- return no+"\t\t\t"+String.format("%-10s",name)
- +String.format("%12s",sex)+String.format("%20s",birth)
- +String.format("%20s",mailAdress);
- }
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- Student student = (Student) o;
- return no == student.no &&
- Objects.equals(name, student.name) &&
- Objects.equals(sex, student.sex) &&
- Objects.equals(birth, student.birth) &&
- Objects.equals(mailAdress, student.mailAdress);
- }
- @Override
- public int hashCode() {
- return Objects.hash(no, name, sex, birth, mailAdress);
- }
- }
复制代码
- import java.util.Map;
- import java.util.Scanner;
- import java.util.Set;
- public class StudentSystemTest {
- public static void main(String[] args) {
- StudentInfo si =new StudentInfo();
- //si.init();
- System.out.println("欢迎使用学生信息管理系统,请认真阅读以下使用说明:");
- while (true){
- System.out.println("请输入不同的功能编号来选择不同的功能:");
- System.out.println("[1]查看学生列表");
- System.out.println("[2]保存学生");
- System.out.println("[3]删除学生");
- System.out.println("[4]查看某个学生详细信息");
- System.out.println("[0]退出系统");
- Scanner s= new Scanner(System.in);
- int n=s.nextInt();
- if (n==1){
- si.checkAll();
- }else if (n==2) {
- si.addStudent();
- }else if (n==3){
- si.deleteStudent();
- }else if (n==4){
- si.checkStudent();
- }else if (n==0){
- System.out.println("感谢您的使用~");
- return;
- }else{
- System.out.println("输入的功能编号有误!");
- }
- }
- }
- }
复制代码 |
|