I think you should consider how you are reading from the file, and how you are creating objects.
Using a plain simple buffered reader has become a bit low‑level since the development of Scanner. If you go through the documentation for Scanner, there is an example about reading longs from a text file. You can expand that example with myScanner.next() and myScanner.nextInt() (and another hasNextXXX method) so you can get the two names and age from the file. Then you can pass them to the constructor. That is one way to do it. You will doubtless have realised there are lots of other ways to do it.
If you create a Person(String) constructor, that is brittle. What if the array doesn't have exactly 3 elements? What if the 3rd element (index=2) isn't an int? All sorts of things could go wrong.
What are you doing about files which have multiple lines in? If you use the next method of a Scanner that permits you to have your details on the same or on different lines.
Unless you have reason to believe the names will be several words, on the same line, consider using next() rather than nextLine(). That of course depends on the names being one “token” each.
The reason is that there are problems with nextLine after nextAnythingElse. All will be well until you try to create a second Person object from the same text file. If things go wrong, never fear. I know the solution.