byte @NotNull [] getLocalFileHeaderDataExtra() throws IOException {
    BufferExposingByteArrayOutputStream stream = new BufferExposingByteArrayOutputStream();
    for (JBZipExtraField field : extra) {
      stream.write(field.getHeaderId().getBytes());
      stream.write(field.getLocalFileDataLength().getBytes());
      stream.write(field.getLocalFileDataData());
    }
    byte[] bytes = stream.toByteArray();

    assertValidExtraFieldSize(bytes);

    return bytes;
  }
byte @NotNull [] getLocalFileHeaderDataExtra()