Проверьте значение, которое возвращается из BufferedReader.readLine (), если это нулевая остановка цикла, например:
BufferedReader reader = new BufferedReader(new FileReader("Data.txt"));
try {
for (String line; (line = reader.readLine()) != null;) {
System.out.println(line);
}
} finally {
reader.close();
}
РЕДАКТИРОВАТЬ: забыл требование занять первые 10 строк, вы можете изменить вышекод для помещения вывода в список и возврата списка, затем вы можете отфильтровать его с помощью функции, подобной этой:
public List<String> takeFirst(int howMany, List<String> lines) {
return lines.size() <= howMany ? lines : lines.subList(0, howMany);
}
Если файл огромен, то это, конечно, будет неэффективно, и если это имеет значениев итоге вы сделаете что-то вроде:
BufferedReader reader = new BufferedReader(new FileReader("Data.txt"));
try {
int linesRead = 0;
for (String line; (line = reader.readLine()) != null && linesRead < 10;) {
System.out.println(line);
linesRead += 1;
}
} finally {
reader.close();
}
, что более уродливо, но читает только те строки, которые вам нужны.