code: public MessageSet read(long readOffset, long size) throws IOException {
          return new FileMessageSet(channel, this.offset + readOffset, //
                  Math.min(this.offset + readOffset + size, highWaterMark()), false, new AtomicBoolean(false));
      }
docs: read message from file
  
  @param readOffset offset in this channel(file);not the message offset
  @param size       max data size
  @return messages sharding data with file log
  @throws IOException reading file failed