title: Using java.io.Serializable when implementing a tree?
body: <p>I have ANOTHER serialization question, but this time it is in regards to Java's native serialization import when serializing to binary.  I have to serialize a random tree that is generated in another java file.  I know how serialization and deserialization works, but the example I followed when using binary serialization with java.io.Serializable did not work in the same fashion as when I did it with, say a simple object.  Here is my code segment:</p>
  
  <pre><code>import java.io.*;
  import java.io.FileInputStream;
  
  public class BinaryS 
      {
  
      public static void main(String[] args) {
          Tree randomTree = RandomTreeBuilder.randomTree(10);
  
          FileOutputStream fOut=null;
          ObjectOutputStream oOut=null;
  
          try{
              fOut= new FileOutputStream("/Users/Pat/programs/binaryfile.txt");
              oOut = new ObjectOutputStream(fOut);
              oOut.writeObject(randomTree); //serializing randomTree
              System.out.println("An employee is serialized into /Users/Pat/binaryfile.txt");
          }catch(IOException e){
              e.printStackTrace();
          }finally{
              try {
                  oOut.flush();
                  oOut.close();
                  fOut.close();
              } catch (IOException e1) {
                  e1.printStackTrace();
              }
          }
      }
  });
  </code></pre>
  
  <p>I believe the problem is when I use writeObject(randomTree).  I get some terminal exceptions when this happens... they are below:</p>
  
  <p>java.io.NotSerializableException: GeneralTree
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
      at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
      at BinaryS.main(BinaryS.java:24)</p>
  
  <p>edit:  I know it says GeneralTree, but at the start of the class it was in I put </p>
  
  <pre><code>print("public class RandomTreeBuilder implements java.io.Serializable");
  </code></pre>
  
  <p>then, GeneralTree is found below it</p>
  
  <pre><code>print(" protected static Tree tree;
  protected static ArrayList names;
  //e6.1
  
  /**
   *Builds a random tree.  The build method does the work.
   */
  //b6.2
  public static Tree randomTree(int n) {
      // Create a random binary tree with n external nodes
      tree = new GeneralTree();
      names = NameGenerator.getNames();
      build(tree.getRoot(), n);  // auxiliary recursive method
      return tree;
  </code></pre>
  
  <p>");</p>
  
  <p>Update:  Hey guys, I figured out my own problem, turns out I am an idiot and didn't realize I had to download an additional .java file, an easy fix now!  Thanks for your help!</p>