private void updateLocalFileHeader(JBZipEntry ze, long crc, long compressedSize, ExtraFieldData extra) throws IOException {
    ze.setCrc(crc);
    ze.setCompressedSize(compressedSize);
    if (myFile.isZip64()) {
      ze.addExtra(new Zip64ExtraField(new ZipUInt64(ze.getSize()),
                                      new ZipUInt64(ze.getCompressedSize()),
                                      new ZipUInt64(ze.getHeaderOffset())));
    }
    flushBuffer();
    long offset = ze.getHeaderOffset() + LFH_OFFSET_FOR_CRC;
    raf.seek(offset);
    raf.write(ZipLong.getBytes(crc));
    raf.write(ZipLong.getBytes(compressedSize));
    raf.write(ZipLong.getBytes(ze.getSize()));

    raf.seek(extra.offset);
    byte[] extraData = ze.getLocalFileHeaderDataExtra();
    if (extra.length != extraData.length) {
      throw new IOException("Extra data is unstable");
    }
    raf.write(extraData);
  }
private void updateLocalFileHeader(JBZipEntry ze, long crc, long compressedSize, ExtraFieldData extra)