It seems to be ok, i think than your throuble can be reading header or reading contractors from a bad position or bad length. I see you use log (only to track if recNo increments
), but you can use this log to debug what is happen, logging each contractor than you read and compares it with your hex editor view, i do the same when i'm debugging my data class.
Tell us if it works. I hope it helps you.