Jared is right.
Why do you need the record number inside the Record class?
The read(int i):String[] method returns an array of String. But after the read if we dont keep the int i value which is the record number there is no way we can figure which record this array belong to. This will be a problem if we want to update the record after reading.
You need to keep that association between record Number and data (Array of Strings) somewhere. A record object is ideal place to have it.
Thanks for the idea Jared.