A solution I found after reading some more documentation is to use the skip method from fileReader this skip a certain number of characters so to fix my code i added myReader.skip(startPoint);
and before the if statment added long startPoint = this.fileSize - this.remainingBytes; to calculate the starting position of the next segment.
If it runs out of characters though the code will return an error so you should make sure you have catches to prevent the error.