I think what happening here is FileOutputStream is erasing the file and so when input.readObject() is called it's reading from a blank file. Is that right? Is there any way I can write to the file without recreating it? Maybe FileWriter?
input = new ObjectInputStream(new FileInputStream(dataFile));
output = new ObjectOutputStream(new FileOutputStream(dataFile));
table = (Table) input.readObject();