Может быть проще сделать строки разделенными двоеточиями
Если у вас записи разделяются двоеточиями между значениями в файле:
Australia:John:42:Blue
USA:Jeremmy:15:Black
Тогда в вашем анализаторе файлов:
private static List<Person> readPeople(File file) {
List<Person> people = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line = "";
while((line = br.readLine()) != null) {
String[] args = line.split(":");
String country = args[0];
String name = args[1];
int age = Integer.parseInt(args[2]);
String eyeColor = args[3];
Person p = new Person(name, country, age, eyeColor);
people.add(p);
}
} catch (IOException ex) {
System.err.println(ex);
}
return people;
}
Наконец, определите класс Person
class Person {
String name;
String country;
int age;
String eyeColor;
public Person(String name, String country, int age, String eyeColor) {
this.name = name;
this.country = country;
this.age = age;
this.eyeColor = eyeColor;
}
@Override
public String toString() {
return String.format("%s:%s:%d:%s", country, name, age, eyeColor);
}
}
Добавьте ваши проверки ошибок и получателей / установщиков по мере необходимости
Это вернет список людей, как определено в вашем файле, и вы можетепроверьте размер списка, вызвав .size()
для объекта списка возврата.
Обновление
Добавлено переопределение toString()
для создания отдельных записей двоеточия, когда онодолжен быть записан в файл или консоль
Надеюсь, это поможет