It is amazing how much faster the file writing got when I wrappered the FileOutputStream with a BufferedOutputStream. :)
I also managed to save about 7% (which was much less impressive, but nice to have) by fetching and storing the default constructor for the class and calling Constructor.newInstance instead of Class.newInstance.
Since I promised this bit of coding would be done this week, I'm feeling pretty good about it...