docs: public int read(byte[] b, int off, int len) throws IOException
  	{
  		if (b == null)
  			throw new NullPointerException();
  		if (off < 0 || len < 0 || len > b.length - off)
  			throw new IndexOutOfBoundsException();
  		return p.readBytes(b, off, len);
  	}