//package demos.common; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; /** * Utility class that allows transparent reading of files from * the current working directory or from the classpath. * @author Pepijn Van Eeckhoudt */ public class ResourceRetriever { public static URL getResource(final String filename) throws IOException { // Try to load resource from jar URL url = ResourceRetriever.class.getClassLoader().getResource(filename); // If not found in jar, then load from disk if (url == null) { return new URL("file", "localhost", filename); } else { return url; } } public static InputStream getResourceAsStream(final String filename) throws IOException { // Try to load resource from jar String convertedFileName = filename.replace('\\', '/'); InputStream stream = ResourceRetriever.class.getClassLoader().getResourceAsStream(convertedFileName); // If not found in jar, then load from disk if (stream == null) { return new FileInputStream(convertedFileName); } else { return stream; } } }