import java.io.*;
import java.lang.*;
import java.io.Serializable;
import java.util.LinkedList;
class LinkedListProg2 {
static class Person implements Serializable {
private String firstName;
private String lastName;
public Person (String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
void print () {
System.out.println (firstName + " " + lastName);
}
}
public static void main (String [] args) {
try {
if (args[0].equals("save")) {
try {
OutputStream os = new FileOutputStream (args[1]);
ObjectOutputStream oos = new ObjectOutputStream(os);
LinkedList <Person> myList = new LinkedList <Person> ();
Person p1 = new Person ("Heinrich", "der VIII");
Person p2 = new Person ("Ludwig", "der XIV");
Person p3 = new Person ("Julius", "Caesar");
myList.add (p1);
myList.add (p2);
myList.add (p3);
oos.writeObject (myList);
oos.close();
}
catch (IOException e) {
System.out.println ("We have a file problem");
}
}
else if (args[0].equals ("read")) {
try {
LinkedList <Person> listFromFile;
InputStream is = new FileInputStream (args[1]);
ObjectInputStream ois = new ObjectInputStream (is);
listFromFile = (LinkedList <Person>) ois.readObject();
for (Person person : listFromFile)
person.print();
}
catch (FileNotFoundException e) {
System.out.println ("We have a file error 1");
}
catch (IOException e) {
System.out.println ("We have a file error");
}
catch (ClassNotFoundException e) {
System.out.println ("We have a problem");
}
}
}
catch (ArrayIndexOutOfBoundsException e) {
System.out.println ("usage: ");
System.out.println ("MyTreeFileProg write fname data1 data2 ...");
System.out.println ("MyTreeFileProg read fname");
}
}
}