@Override
	public byte readByte(long index) throws IOException {
		if (index < currentIndex) {
			throw new IOException("Attempted to read byte that was already read.");
		}
		else if (index > currentIndex) {
			currentIndex += inputStream.skip(index - currentIndex);
			if (currentIndex != index) {
				throw new IOException("Not enough bytes were skipped.");
			}
		}

		int value = inputStream.read();
		if (value == -1) {
			throw new EOFException();
		}
		currentIndex += 1L;
		return (byte) value;
	}
Constructs a {@link InputStreamByteProvider} from the specified {@link InputStream}

@param inputStream the underlying {@link InputStream}
@param length the length of the {@link InputStreamByteProvider}
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/InputStreamByteProvider.java