самый короткий метод будет с Scanner
:
private static int readSoleInteger(String path) {
Scanner s = new Scanner(new File(path));
int ret = s.nextInt();
s.close();
return ret;
}
Обратите внимание, что Scanner
глотает любые IOExceptions
, так что это сильно упрощает.
Что касается "наиболее эффективного" ... ну, простой процесс открытия файла с диска, вероятно, будет самой медленной частью любого метода, который вы пишете для этого. В этом случае не стоит слишком беспокоиться об эффективности.
Редактировать: Я не понял, что целое число может иметь пробел по обе стороны от него. Мой код не учитывает это в настоящее время, но легко заставить Scanner
пропустить вещи . Я добавил строку
s.skip("\\s+");
чтобы исправить это.
Редактировать 2: Неважно, Scanner
игнорирует пробелы при попытке разобрать числа:
Строки, которые могут быть проанализированы в виде чисел экземпляром этого класса, определяются в терминах следующей грамматики регулярных выражений:
(регулярные выражения отрублены)
Пробел не имеет значения в приведенных выше регулярных выражениях.