public List<byte[]> readBytes(long startByte, long endByte) throws IOException {
		
		if (raf == null) {
			return Collections.<byte[]> emptyList();
		}
		
		// The list to return.
		List<byte[]> byteArrayList = new ArrayList<>();
		
		// Move the file pointer to the start.
		raf.seek(startByte);
		
		// Figure out how many bytes we need to read.  If the size is greater than MAX_INT, then
		// we have to chunk this up into several reads, as java doesn't support creating byte 
		// arrays with size > MAX_INT.
		long bytesToRead = endByte - startByte + 1;
		while(bytesToRead > 0) {
			byte[] byteArray = bytesToRead > Integer.MAX_VALUE ? new byte[Integer.MAX_VALUE]
					: new byte[(int) bytesToRead];
			int bytesRead = raf.read(byteArray);

			if (bytesRead > 0) {
				byteArrayList.add(byteArray);
				bytesToRead -= bytesRead;
			}
		}
				
		return byteArrayList;
	}
Reads all bytes from the given byte to the end byte. If the amount of bytes to be read is
greater than the size of an INT, we will have to read this in several chunks, hence the
need to return a list of arrays, and not just a single byte array.

@param startByte
@param endByte
@return a map of all the bytes read in (index 0 is first chunk, 1 is next, etc...).

@throws IOException
Ghidra/Framework/Project/src/main/java/ghidra/framework/main/logviewer/model/ChunkReader.java