现有类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类的定义复制过去。
输入输出如下
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 ;
}
}
可以把5个Book对象保存到List集合,然后用WriteObject方法保存List集合,读取的时候读出List集合,再遍历集合即可。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!