JAVA读取资源文件的方法整理

    无论是java app应用,还是java web应用,基本都会用到读取目标文件中的资源文件,以下整理出常用的资源读取方法,备忘:
/**
	 * Returns the URL of the resource on the classpath
	 * 
	 * @param resource
	 *            The resource to find
	 * @throws IOException
	 *             If the resource cannot be found or read
	 * @return The resource
	 */
	public static URL getResourceURL(String resource) throws IOException {
		URL url = null;
		ClassLoader loader = Resources.class.getClassLoader();
		if (loader != null)
			url = loader.getResource(resource);
		if (url == null)
			url = ClassLoader.getSystemResource(resource);
		if (url == null)
			throw new IOException("Could not find resource " + resource);
		return url;
	}
	
	/** Returns the URL of the resource on the classpath
	    * @param loader The classloader used to load the resource
	    * @param resource The resource to find
	    * @throws IOException If the resource cannot be found or read
	    * @return The resource
	    */
	 public static URL getResourceURL(ClassLoader loader, String resource) throws IOException {
	     URL url = null;
	     if (loader != null) url = loader.getResource(resource);
	     if (url == null) url = ClassLoader.getSystemResource(resource);
	     if (url == null) throw new IOException("Could not find resource " + resource);
	     return url;
	 }

	/**
	 * Returns a resource on the classpath as a Stream object
	 * 
	 * @param resource
	 *            The resource to find
	 * @throws IOException
	 *             If the resource cannot be found or read
	 * @return The resource
	 */
	public static InputStream getResourceAsStream(String resource)
			throws IOException {
		InputStream in = null;
		ClassLoader loader = Resources.class.getClassLoader();
		if (loader != null)
			in = loader.getResourceAsStream(resource);
		if (in == null)
			in = ClassLoader.getSystemResourceAsStream(resource);
		if (in == null)
			throw new IOException("Could not find resource " + resource);
		return in;
	}
	
	/** Returns a resource on the classpath as a Stream object
	    * @param loader The classloader used to load the resource
	    * @param resource The resource to find
	    * @throws IOException If the resource cannot be found or read
	    * @return The resource
	    */
	 public static InputStream getResourceAsStream(ClassLoader loader, String resource) throws IOException {
	     InputStream in = null;
	     if (loader != null) in = loader.getResourceAsStream(resource);
	     if (in == null) in = ClassLoader.getSystemResourceAsStream(resource);
	     if (in == null) throw new IOException("Could not find resource " + resource);
	     return in;
	 }
	 
	 /** Returns a resource on the classpath as a Properties object
	    * @param resource The resource to find
	    * @throws IOException If the resource cannot be found or read
	    * @return The resource
	    */
	 public static Properties getResourceAsProperties(String resource)
	       throws IOException {
	     Properties props = new Properties();
	     InputStream in = null;
	     String propfile = resource;
	     in = getResourceAsStream(propfile);
	     props.load(in);
	     in.close();
	     return props;
	}
	
	 /** Returns a resource on the classpath as a Properties object
	    * @param loader The classloader used to load the resource
	    * @param resource The resource to find
	    * @throws IOException If the resource cannot be found or read
	    * @return The resource
	    */
	 public static Properties getResourceAsProperties(ClassLoader loader, String resource)
	       throws IOException {
	     Properties props = new Properties();
	     InputStream in = null;
	     String propfile = resource;
	     in = getResourceAsStream(loader, propfile);
	     props.load(in);
	     in.close();
	     return props;
	 }

猜你喜欢

转载自forgidaved.iteye.com/blog/1665639