title: How to Serialize an ArrayLIst in java without getting errors?
body: <p>I am just trying to output a previously created ArrayList to serialise it for future storage.</p>
  
  <p>but when I attmept to do so I get the runTime error "notSerialisableException: Department.</p>
  
  <p>Is their a speicial way of serializing an arrayList??</p>
  
  <p>Would someone be able to tell me why I may be getting this error.</p>
  
  <p>This is the code:</p>
  
  <pre><code>   import java.awt.*;
     import java.util.*;
     import java.io.*;
     import java.io.Serializable;
  
     public class tester1ArrayListObjectSave
    {
  
      private ArrayList &lt;Department&gt; allDeps = new ArrayList&lt;Department&gt;();
      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();
      }
  
  }
  </code></pre>