code: public final byte[] readColumn(byte[] buffer, int column) {
          if (buffer == null) {
              throw new InvalidArgument("buffer", buffer);
          } else if (buffer.length != recordSize) {
              final String fmt = "invalid buffer (%d bytes, expected %d)";
              final String msg = format(fmt, buffer.length, recordSize);
              throw new InvalidArgument(msg);
          }
  
          int i = 0, offset = 0;
          for (; i < column; i++) {
              offset += columns[i].size;
          }
          Column<?> c = columns[i];
  
          byte[] ret = new byte[c.size];
          arraycopy(buffer, offset, ret, 0, c.size);
          return ret;
      }
docs: Returns the {@code column's} byte array data contained in {@code buffer}.
  
  @param buffer {@code byte[]}; must be non-null and of the same length as
  {@link #getRecordSize()}
  @param column Column to read
  @return {@code byte[]}
  @throws InvalidArgument Thrown if {@code buffer} is null or invalid