I have looked over TarBuffer And TarArchiveInputStream and found some ways to improve performance orders of magnitude.
I used a 1 GB TAR archive file (no compression).
Times for reading all entry file names:
Current - 630ms
Mine - 17ms
Times for extracting all entry files:
Mine - 2214ms
As you can see, I have enhanced the "skip" methods greatly. Actual extraction was within a margin of error and the timings bounces around a lot.