dfsljkjafdsk; 2022-05-25 09:43 采纳率: 100%
浏览 187
已结题

java oj,对象序列化

现有类Person和Book,其定义如下:

import java.io.Serializable;
import java.time.LocalDate;

public class Person implements Serializable{

private static final long serialVersionUID = 1L;
private String name ;
private String gender ;
private LocalDate birthday ;
private String biography ;

public Person() {

}

public Person(String name , String gender , String biography ,
int year , int month ,int day) {
this.name = name ;
this.gender = gender ;
this.biography = biography ;
this.birthday = LocalDate.of(year , month , day) ;
}
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 LocalDate getBirthday() {
return birthday;
}
public void setBirthday(LocalDate birthday) {
this.birthday = birthday;
}
public String getBiography() {
return biography;
}
public void setBiography(String biography) {
this.biography = biography;
}

@Override
public String toString() {
return "name: " + name + " , gender: " + gender + " , birthday: " 
+ birthday + " , biography: " + biography ;
}

}





import java.io.Serializable;

public class Book implements Serializable{

private static final long serialVersionUID = 1L;

private String name;
private Person author;
private int price;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public Person getAuthor() {
return author;
}

public void setAuthor(Person author) {
this.author = author;
}

public int getPrice() {
return price;
}

public void setPrice(int price) {
this.price = price;
}

public Book() {

}

public Book(String name,Person author,int price) {
this.name = name;
this.author = author;
this.price = price;
}

@Override
public String toString() {
return "name: " + name + "\nauthor: " + author + "\nprice: " + price ;
}

}

有一段程序用objectOutputStream的writeobject()方法连续向文件dict.dic中写入了5个Book类型的对象。现请你写一段程序将这5个对象读出来。
注意:你的程序中要把Person和Book类的定义复制过去。
输入输出如下

img

  • 写回答

3条回答 默认 最新

  • CSDN专家-sinJack 2022-05-25 13:56
    关注
    import java.io.Serializable;
    import java.time.LocalDate;
    import java.io.*;
    import java.util.Scanner;
    public class Main{
        public static void main(String[] args) throws Exception{
            ObjectInputStream objectInputStream=new ObjectInputStream(new FileInputStream("dict.dic"));
            Scanner in=new Scanner(System.in);
            int num=in.nextInt();
            for(int i=1;i<num;i++){
                objectInputStream.readObject();
            }
            System.out.println(objectInputStream.readObject());
            objectInputStream.close();
        }
    }
    
    class Person implements Serializable{
    
        private static final long serialVersionUID = 1L;
        private String name ;
        private String gender ;
        private LocalDate birthday ;
        private String biography ;
    
        public Person() {
    
        }
    
        public Person(String name , String gender , String biography ,
                      int year , int month ,int day) {
            this.name = name ;
            this.gender = gender ;
            this.biography = biography ;
            this.birthday = LocalDate.of(year , month , day) ;
        }
        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 LocalDate getBirthday() {
            return birthday;
        }
        public void setBirthday(LocalDate birthday) {
            this.birthday = birthday;
        }
        public String getBiography() {
            return biography;
        }
        public void setBiography(String biography) {
            this.biography = biography;
        }
    
        @Override
        public String toString() {
            return "name: " + name + " , gender: " + gender + " , birthday: "
                    + birthday + " , biography: " + biography ;
        }
    }
    
    class Book implements Serializable{
    
        private static final long serialVersionUID = 1L;
    
        private String name;
        private Person author;
        private int price;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Person getAuthor() {
            return author;
        }
    
        public void setAuthor(Person author) {
            this.author = author;
        }
    
        public int getPrice() {
            return price;
        }
    
        public void setPrice(int price) {
            this.price = price;
        }
    
        public Book() {
    
        }
    
        public Book(String name,Person author,int price) {
            this.name = name;
            this.author = author;
            this.price = price;
        }
    
        @Override
        public String toString() {
            return "name: " + name + "\nauthor: " + author + "\nprice: " + price ;
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月2日
  • 已采纳回答 5月25日
  • 创建了问题 5月25日

悬赏问题

  • ¥20 树莓派5做人脸情感识别与反馈系统
  • ¥15 selenium 控制 chrome-for-testing 在 Linux 环境下报错 SessionNotCreatedException
  • ¥15 使用pyodbc操作SQL数据库
  • ¥15 MATLAB实现下列
  • ¥30 mininet可视化打不开.mn文件
  • ¥50 C# 全屏打开Edge浏览器
  • ¥80 WEBPACK性能优化
  • ¥30 python拟合回归分析
  • ¥500 metaswitch 6010
  • ¥15 关于#分类#的问题:不用人工智能的算法