code: public void read(final long address, final byte[] data) throws Exception {
  
          byte[] bufferedData = buffer.get(address);
          if (bufferedData != null && bufferedData.length == data.length) {
              System.arraycopy(bufferedData, 0, data, 0, data.length);
          } else {
              device.read(address, data);
          }
      }
docs: {@inheritDoc}