Хорошо. У меня есть несколько комментариев. Во-первых, вам действительно нужен массив 'strBirth'? Похоже, вы только пишете элементы, но не читаете из массива. Второе - метод readIntoArray всегда возвращает ноль. Кроме того, вы считаете клиентов дважды, но достаточно только одного. Тогда вам действительно нужен массив с клиентами? Поскольку вы используете массив, вам нужно точно знать количество клиентов, и, следовательно, вам нужно дважды отсканировать файл. Если вы используете ArrayList, вам нужно сканировать файл только один раз.
Я исправил проблемы в приведенном ниже коде.
public class Customers {
//////// MAIN ////////
public static void main(String[] args) {
File file = new File("customers.txt");
Person[] customers = readIntoArray(file, numCustomers);
int numEntries = customers.length;
int min = locateBirthdate(customers);
System.out.println("Birthdays this month: " + customer[mon].getBirthdate());
}
public static Person[] readIntoArray(File f, int num) {
List<Customer> customers = new ArraList<>();
try {
Scanner input = new Scanner(f);
String[] strBirth = new String[num];
while (scan.hasNextLine()) {
customers.add(makeCustomer(scan.nextLine()));
}
} catch (Exception e) {
throw new RuntimeException(e);
}
return customers.toArray(Person[]::new);
}