我目前正在准备考试并正在执行以下任务:
如何将 ArrayList 传递给存储列表数据的“保存”方法和将数据传回的另一个“加载”方法?
class Person {
private String firstname;
private String lastname;
private String sortname;
public Person(String firstname, String lastname) {
this.firstname = firstname;
this.lastname = lastname;
updateSortname();
//getter 和 setter..
根据任务我应该使用这些方法:
public static List<Person> load(String filename) throws IOException {
return ??;
}
public static Person load(DataInputStream in) throws IOException {
return ??;
}
public static void save(String filename, List<Person> list) throws IOException {
}
public static void save(DataOutputStream out, Person person) throws IOException {
}
public static List<Person> unserialize(String filename) throws IOException, ClassNotFoundException {
return ??;
}
public static void serialize(String filename, List<Person> persons) throws IOException {
}
这是应该产生以下输出的主要方法:
[威利·旺卡(WonkaWilly)、查理·巴克特(BucketCharlie)、乔爷爷(JoeGrandpa)]
[威利·旺卡(WonkaWilly)、查理·巴克特(BucketCharlie)、乔爷爷(JoeGrandpa)]
[威利·旺卡(WonkaWilly)、查理·巴克特(BucketCharlie)、乔爷爷(JoeGrandpa)]
public class PersonTest {
public static void main(String[] args) throws IOException, ClassNotFoundException {
List<Person> persons = new ArrayList<>();
persons.add(new Person("Willy", "Wonka"));
persons.add(new Person("Charlie", "Bucket"));
persons.add(new Person("Grandpa", "Joe"));
System.out.println(persons);
Person.save("persons.sav", persons);
persons = Person.load("persons.sav");
System.out.println(persons);
Person.serialize("persons.ser", persons);
persons = Person.unserialize("persons.ser");
System.out.println(persons);
}
}
它应该看起来像这样。但我不知道如何为 ArrayLists 做这件事。
public static void save(String filename , Graph graph ) throws IOException{
try (ObjectOutputStream out = new ObjectOutputStream(new BufferedOutputStream (new FileOutputStream (filename)))) {
out.writeObject (graph);
}
}
Qyouu
斯蒂芬大帝
相关分类