Есть ли у вас конечный конец строки в конце последней строки? Если это так, то код будет видеть файл в виде двух полных строк и одной пустой.
Если вы знаете, что у вас всегда будет конечный разделитель (в данном случае - разрыв строки), просто снимите лишнюю 1 с конечного значения цикла for. В противном случае сначала проверьте последнюю строку (чтобы узнать, нужно ли выполнять цикл один раз меньше) или проверьте каждую строку внутри цикла (это будет гораздо менее эффективно).