Serialisieren einer ArrayLIst in java, ohne Fehler?

Ich versuche gerade die Ausgabe eine zuvor erstellte ArrayList zu serialise es für die spätere Lagerung.

aber wenn ich attmept zu tun, so bekomme ich den Laufzeitfehler "notSerialisableException: Abteilung.

Ist Ihr ein speicial Weise zu serialisieren einer arrayList??

Wäre jemand in der Lage mir zu sagen, warum ich kann diese Fehlermeldung bekommen.

Dies ist der code:

   import java.awt.*;
   import java.util.*;
   import java.io.*;
   import java.io.Serializable;

   public class tester1ArrayListObjectSave
  {

    private ArrayList <Department> allDeps = new ArrayList<Department>();
    private int choice = 0;
    private String name;
    private String loc; 


    Department theDepartment;
    Scanner scan;   

    public static void main(String[] args)
    {   

    new tester1ArrayListObjectSave();       

    }

    public tester1ArrayListObjectSave()
    {
            scan = new Scanner(System.in);
            options();
    } 

    public void options()
    {
        System.out.println("wadya wanna do");



        System.out.println("1. create a new department");
        System.out.println("2. read from text file");
        System.out.println("4. save it to system as a serializable file");
        System.out.println(". read from text file");
        System.out.println("3. to exit");

        choice = scan.nextInt();
        workOutOptions();

    }

    public void workOutOptions()
    {
        if (choice ==1)
        {
            createNewEmp();
        }
        else if (choice ==2)
        {
            try
            {
            readTextToSystem();
            }
            catch (IOException exc)
            {
                System.out.println("uh oh their was an error: "+exc);
            }
        }
        else if (choice == 3)
        {
            System.exit(0);
        }
        else if (choice ==4)
        {
            try
            {
            createSerialisable();
            }
            catch (IOException exc)
            {
                System.out.println("sorry could not serialise data cause of this:"+exc);
            }
        }
        else
        {
            System.out.println("do nothing");
        }
    }


    public void createNewEmp()
    {


            System.out.println("What is the name");
            name = scan.next();
            System.out.println("what is the chaps loc");
            loc = scan.next();
            try
            {
                saveToSystem();
            }
                catch (IOException exc)
            {
            //do something here to deal with problems
            }
            theDepartment = new Department(name,loc);

            allDeps.add(theDepartment);

            options();
    }

    public void saveToSystem() throws IOException
    {
        FileOutputStream fos = new FileOutputStream( "backUp.txt", true ); 
        PrintStream outFile = new PrintStream(fos);
        System.out.println("added to system succesfully");
        outFile.println(name);
        outFile.println(loc);
        outFile.close();
        options();      
    }

    public void readTextToSystem() throws IOException
    {
        Scanner inFile = new Scanner ( new File ("backUp.txt") );
        while (inFile.hasNextLine())
        {
        name=inFile.nextLine();
        System.out.println("this is the name: "+name);
        loc = inFile.nextLine();
        System.out.println("this is the location: "+loc);
        Department dDepartment = new Department(name,loc);
        allDeps.add(dDepartment);
        options();

        }
        System.out.println(allDeps);
    }

    public void createSerialisable() throws IOException
    {
        FileOutputStream fileOut =  new FileOutputStream("theBkup.ser");
        ObjectOutputStream out =  new ObjectOutputStream(fileOut);
        out.writeObject(allDeps);
        options();
    }

}
Department benötigt zur Umsetzung der Serializable - Schnittstelle.
also bedeutet, dass die Objekt-Abteilung, die im code muss als public deklariert werden class Sachgebiet implements serializable ??
ja danke es scheint zu funktionieren jetzt okay

InformationsquelleAutor Binyomin | 2011-10-30

Schreibe einen Kommentar