public boolean outputEntry(String path, long time, InputStream in, TaskMonitor monitor) {

		byte[] bytes = new byte[4096];
		int numRead = 0;

		//Create a zip entry and write it out along with its data.
		ZipEntry entry = new ZipEntry(path);
		entry.setTime(time);
		try {
			monitor.setMessage("Writing " + path);
			jarOut.putNextEntry(entry);
			try {
				while ((numRead = in.read(bytes)) != -1) {
					if (monitor.isCancelled()) {
						return false;
					}
					jarOut.write(bytes, 0, numRead);
				}
				return true;
			}
			catch (IOException ioe) {
				Msg.error(this, "Unexpected Exception: " + ioe.getMessage(), ioe);
			}
			finally {
				jarOut.closeEntry();
			}
		}
		catch (IOException ioe) {
			Msg.error(this, "Unexpected Exception: " + ioe.getMessage(), ioe);
		}
		return false;
	}
Outputs an individual entry to the jar.  The data input stream will be read until and EOF is read.
@param path entry path within the jar file
@param time entry time
@param in data input stream
@param monitor cancellable task monitor
@return true if entry is output to the jar file successfully.
Ghidra/Framework/Generic/src/main/java/generic/io/JarWriter.java