Processing - printwriter/enumeration does not complete
===

I'm using processing in conjunction with the kinect to capture point cloud data. My sketch writes the vector locations of the points from the kinect to an array, and uses the PrintWriter class to create text files which store all the points from each frame in separate text files. It includes a conditional that is supposed to stop the print writer from writing, but it continues to write, and eventually hangs up. Any ideas as to what might be wrong? Here's my code:

When recording:

    PVector realWorldPoint; //stores each point as a vector
    PVector[] frame = new PVector[arrayLength]; //stores all of the vectors/real world points in an array
    int index = 0;
    
    for(int y=0;y < context.depthHeight();y+=steps) //height = 480
    {
        for(int x=0;x < context.depthWidth();x+=steps) //width = 640
        {
          if (isRecording == true){
            int offset = x + y * context.depthWidth();
            realWorldPoint = context.depthMapRealWorld()[offset];
            frame[index] = realWorldPoint;
            recording.add(frame);
            index++;
          }
        }
    }

AND when saving:

    if (isRecording == true){
      isRecording = false;
      println("Stopped Recording");
      Enumeration e = recording.elements();
      int i = 0;
      while (e.hasMoreElements()) {
        
        // Create one directory
        boolean success = (new File("out"+currentFile)).mkdir(); 
        PrintWriter output = createWriter("out"+currentFile+"/frame" + i++ +".txt");
        PVector [] frame = (PVector []) e.nextElement();
        
        for (int j = 0; j < frame.length; j++) {
         output.println(j + ", " + frame[j].x + ", " + frame[j].y + ", " + frame[j].z );
        }
        output.flush(); // Write the remaining data
        output.close(); //Doesn't seem to close
      }
      println("done recording"); //NEVER EXECUTES
    }

These are big files (about 12,000 lines a piece), and I'm creating about 30 of these a second. Maybe it's just overloading it so the stop never registers? Also, not sure about the enumeration - this was copied from someone else's code, but I don't see documentation on this data type.
