The output for those debugging output statements in findID() looks like this: Date: Mon Apr 02 2007 The ID: 0 How Many: 1 1: Anchovies 2: 3: 1 Date: 300 The ID: null Obviously, the date should be null, terminating the while loop. But that second bfr.readLine() in the for loop is being ignored. In fact, interestingly enough, if I copied ...