В настоящее время я готовлюсь к экзамену и работаю над следующей задачей:
Как передать ArrayList в метод «save», который хранит данные списка, и другой метод «load», который передаетданные возвращаются?
class Person {
private String firstname;
private String lastname;
private String sortname;
public Person(String firstname, String lastname) {
this.firstname = firstname;
this.lastname = lastname;
updateSortname();
// метод получения и установки ..
В соответствии с задачей я должен использовать следующие методы:
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), Чарли Бакет (Бакет Чарли), дедушка Джо (ДжоГрандпа)]
[Вилли Вонка (WonkaWilly), Чарли Бакет (БакетЧарли), дедушка Джо (ДжоГрандпа)]
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);
}
}
public static Graph load (String filename) throws IOException, ClassNotFoundException {
Graph graph = null;
try (ObjectInputStream in = new ObjectInputStream (new BufferedInputStream ( new FileInputStream (filename)))) {
graph = (Graph) in.readObject();
}
return graph;
}