Проблема с чтением файла, потому что вы читаете построчно, а не читаете все строки
int counter = 0;
String title = "", author = "";
double price = 0.0;
while ((line = infile.readLine()) != null) {
++counter;
if (counter == 1)
title = line;
else if (counter == 2)
author = line;
else if (counter == 3) {
price = Double.parseDouble(line);
SimpleBook sb = new SimpleBook(title, author, price);
bookList.add(sb);
counter = 0;
}
}
, или вы можете проверить readAllLines из Oracle do c