code: protected void createArchiveEntry(File file, String entryName, ArchiveOutputStream archive) throws IOException {
          ArchiveEntry entry = archive.createArchiveEntry(file, entryName);
          // TODO #23: read permission from file, write it to the ArchiveEntry
          archive.putArchiveEntry(entry);
  
          if (!entry.isDirectory()) {
              FileInputStream input = null;
              try {
                  input = new FileInputStream(file);
                  IOUtils.copy(input, archive);
              } finally {
                  IOUtils.closeQuietly(input);
              }
          }
  
          archive.closeArchiveEntry();
      }
docs: Creates a new {@link ArchiveEntry} in the given {@link ArchiveOutputStream}, and copies the given {@link File}
  into the new entry.
  
  @param file the file to add to the archive
  @param entryName the name of the archive entry
  @param archive the archive to write to
  @throws IOException when an I/O error occurs during FileInputStream creation or during copying