void putNextEntryContent(JBZipEntry entry, InputStream content) throws IOException {
    prepareNextEntry(entry);
    ExtraFieldData extra = writeLocalFileHeader(entry);
    flushBuffer();

    RandomAccessFileOutputStream fileOutput = new RandomAccessFileOutputStream(raf);
    OutputStream bufferedFileOutput = new BufferedOutputStream(fileOutput);

    OutputStream output;
    if (entry.getMethod() == ZipEntry.DEFLATED) {
      def.setLevel(level);
      output = new DeflaterOutputStream(bufferedFileOutput, def);
    }
    else {
      output = bufferedFileOutput;
    }

    long writtenSize = 0;
    try {
      final byte[] buffer = new byte[10 * 1024];
      int count;
      crc.reset();
      while ((count = content.read(buffer)) > 0) {
        writtenSize += count;
        output.write(buffer, 0, count);
        crc.update(buffer, 0, count);
      }
    }
    finally {
      output.close();
    }
    writtenOnDisk += fileOutput.myWrittenBytes;

    entry.setSize(writtenSize);
    updateLocalFileHeader(entry, crc.getValue(), fileOutput.myWrittenBytes, extra);
  }
void putNextEntryContent(JBZipEntry entry, InputStream content)