Java Resource Load getResourceAsStream(Class claz, String name)

Here you can find the source of getResourceAsStream(Class claz, String name)

Description

Finds a resource with the given name.

License

Apache License

Parameter

Parameter Description
claz Class to use when getting the System classloader (used if no Thread Context classloader available or fails to get resource).
name name of the resource

Return

InputStream for the resource.

Declaration

public static InputStream getResourceAsStream(Class claz, String name) 

Method Source Code


//package com.java2s;
/*//w  ww.j  a  v  a  2  s  . c  om
 * Copyright 2002-2005 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import java.io.InputStream;

public class Main {
    /**
     * Finds a resource with the given name.  Checks the Thread Context
     * classloader, then uses the System classloader.  Should replace all
     * calls to <code>Class.getResourceAsString</code> when the resource
     * might come from a different classloader.  (e.g. a webapp).
     * @param claz Class to use when getting the System classloader (used if no Thread
     * Context classloader available or fails to get resource).
     * @param name name of the resource
     * @return InputStream for the resource.
     */
    public static InputStream getResourceAsStream(Class claz, String name) {
        InputStream result = null;

        /**
         * remove leading slash so path will work with classes in a JAR file
         */
        while (name.startsWith("/")) {
            name = name.substring(1);
        }

        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();

        if (classLoader == null) {
            classLoader = claz.getClassLoader();
            result = classLoader.getResourceAsStream(name);
        } else {
            result = classLoader.getResourceAsStream(name);

            /**
            * for compatibility with texen / ant tasks, fall back to
            * old method when resource is not found.
            */

            if (result == null) {
                classLoader = claz.getClassLoader();
                if (classLoader != null)
                    result = classLoader.getResourceAsStream(name);
            }
        }

        return result;

    }
}

Related

  1. getResourceAsProperties(String resource)
  2. getResourceAsReader(final Class classLocation, final String resourceName)
  3. getResourceAsReader(String name)
  4. getResourceAsReader(String relativeName, Class clazz, String enc)
  5. getResourceAsStream(Class baseclass, String name)
  6. getResourceAsStream(Class clazz, String name)
  7. getResourceAsStream(Class clazz, String resource)
  8. getResourceAsStream(Class clazz, String resource, boolean checkThreadContextFirst)
  9. getResourceAsStream(Class clazz, String fileName)