All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.undefinedlabs.scope.utils.ResourceUtils Maven / Gradle / Ivy

package com.undefinedlabs.scope.utils;

import org.apache.commons.io.IOUtils;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public enum ResourceUtils {
  INSTANCE;

  public File getResourceAsTempFile(final String resourceName) {
    try {
      final File file = File.createTempFile(resourceName, ".tmp");
      final OutputStream os = new FileOutputStream(file);
      try {
        getResourceAsTempFile(resourceName, file, os);
        return file;
      } finally {
        os.close();
      }
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  }

  public void getResourceAsTempFile(
      final String resourceName, final File file, final OutputStream outputStream)
      throws IOException {
    file.deleteOnExit();

    final InputStream is = getResourceAsStream(resourceName);
    try {
      IOUtils.copy(is, outputStream);
    } finally {
      is.close();
    }
  }

  private static InputStream getResourceAsStream(String resourceName) throws FileNotFoundException {
    final InputStream is = ResourceUtils.class.getResourceAsStream(resourceName);
    if (is == null) {
      throw new FileNotFoundException(
          "Cannot find resource '" + resourceName + "' on the class path.");
    }
    return is;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy