code: public InputStream getFileStream(String fileName) throws CmsImportExportException {
  
          try {
              InputStream stream = null;
              // is this a zip-file?
              if (getZipFile() != null) {
                  // yes
                  ZipEntry entry = getZipFile().getEntry(fileName);
                  // path to file might be relative, too
                  if ((entry == null) && fileName.startsWith("/")) {
                      entry = getZipFile().getEntry(fileName.substring(1));
                  }
                  if (entry == null) {
                      throw new ZipException(
                          Messages.get().getBundle().key(Messages.LOG_IMPORTEXPORT_FILE_NOT_FOUND_IN_ZIP_1, fileName));
                  }
  
                  stream = getZipFile().getInputStream(entry);
              } else {
                  // no - use directory
                  File file = new File(getFolder(), CmsImportExportManager.EXPORT_MANIFEST);
                  stream = new FileInputStream(file);
              }
              return stream;
          } catch (Exception ioe) {
              CmsMessageContainer msg = Messages.get().container(
                  Messages.ERR_IMPORTEXPORT_ERROR_READING_FILE_1,
                  fileName);
              if (LOG.isErrorEnabled()) {
                  LOG.error(msg.key(), ioe);
              }
              throw new CmsImportExportException(msg, ioe);
          }
      }
docs: Returns a stream for the content of the file.<p>
  
  @param fileName the name of the file to stream, relative to the folder or zip file
  
  @return an input stream for the content of the file, remember to close it after using
  
  @throws CmsImportExportException if something goes wrong