// start header
final ByteArrayOutputStream startHeaderBaos = new ByteArrayOutputStream();
final DataOutputStream startHeaderStream = new DataOutputStream(startHeaderBaos);
startHeaderStream.writeLong(Long.reverseBytes(headerPosition - SevenZFile.SIGNATURE_HEADER_SIZE));
startHeaderStream.writeLong(Long.reverseBytes(0xffffFFFFL & headerBytes.length));
crc32.reset();
crc32.update(headerBytes);
startHeaderStream.writeInt(Integer.reverseBytes((int)crc32.getValue()));
startHeaderStream.flush();
final byte[] startHeaderBytes = startHeaderBaos.toByteArray();
crc32.reset();