com.google.common.io
Class Resources

java.lang.Object
  extended by com.google.common.io.Resources

public final class Resources
extends Object

Provides utility methods for working with resources in the classpath. Note that even those these methods use URL parameters, they are usually not appropriate for HTTP or other non-classpath resources.

All method parameters must be non-null unless documented otherwise.

Since:
2009.09.15 tentative
Author:
Chris Nokleberg, Ben Yu

Constructor Summary
Resources()
           
 
Method Summary
static void copy(URL from, OutputStream to)
          Copies all bytes from a URL to an output stream.
static URL getResource(Class<?> contextClass, String resourceName)
          Returns a URL pointing to resourceName that is relative to contextClass, if the resource is found in the class path.
static URL getResource(String resourceName)
          Returns a URL pointing to resourceName if the resource is found in the class path.
static InputSupplier<InputStream> newInputStreamSupplier(URL url)
          Returns a factory that will supply instances of InputStream that read from the given URL.
static InputSupplier<InputStreamReader> newReaderSupplier(URL url, Charset charset)
          Returns a factory that will supply instances of InputStreamReader that read a URL using the given character set.
static List<String> readLines(URL url, Charset charset)
          Reads all of the lines from a URL.
static
<T> T
readLines(URL url, Charset charset, LineProcessor<T> callback)
          Streams lines from a URL, stopping when our callback returns false, or we have read all of the lines.
static byte[] toByteArray(URL url)
          Reads all bytes from a URL into a byte array.
static String toString(URL url, Charset charset)
          Reads all characters from a URL into a String, using the given character set.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Resources

public Resources()
Method Detail

newInputStreamSupplier

public static InputSupplier<InputStream> newInputStreamSupplier(URL url)
Returns a factory that will supply instances of InputStream that read from the given URL.

Parameters:
url - the URL to read from
Returns:
the factory

newReaderSupplier

public static InputSupplier<InputStreamReader> newReaderSupplier(URL url,
                                                                 Charset charset)
Returns a factory that will supply instances of InputStreamReader that read a URL using the given character set.

Parameters:
url - the URL to read from
charset - the character set used when reading the URL contents
Returns:
the factory

toByteArray

public static byte[] toByteArray(URL url)
                          throws IOException
Reads all bytes from a URL into a byte array.

Parameters:
url - the URL to read from
Returns:
a byte array containing all the bytes from the URL
Throws:
IOException - if an I/O error occurs

toString

public static String toString(URL url,
                              Charset charset)
                       throws IOException
Reads all characters from a URL into a String, using the given character set.

Parameters:
url - the URL to read from
charset - the character set used when reading the URL
Returns:
a string containing all the characters from the URL
Throws:
IOException - if an I/O error occurs.

readLines

public static <T> T readLines(URL url,
                              Charset charset,
                              LineProcessor<T> callback)
                   throws IOException
Streams lines from a URL, stopping when our callback returns false, or we have read all of the lines.

Parameters:
url - the URL to read from
charset - the character set used when reading the URL
callback - the LineProcessor to use to handle the lines
Returns:
the output of processing the lines
Throws:
IOException - if an I/O error occurs

readLines

public static List<String> readLines(URL url,
                                     Charset charset)
                              throws IOException
Reads all of the lines from a URL. The lines do not include line-termination characters, but do include other leading and trailing whitespace.

Parameters:
url - the URL to read from
charset - the character set used when writing the file
Returns:
a mutable List containing all the lines
Throws:
IOException - if an I/O error occurs

copy

public static void copy(URL from,
                        OutputStream to)
                 throws IOException
Copies all bytes from a URL to an output stream.

Parameters:
from - the URL to read from
to - the output stream
Throws:
IOException - if an I/O error occurs

getResource

public static URL getResource(String resourceName)
Returns a URL pointing to resourceName if the resource is found in the class path. Resources.class.getClassLoader() is used to locate the resource.

Throws:
IllegalArgumentException - if resource is not found

getResource

public static URL getResource(Class<?> contextClass,
                              String resourceName)
Returns a URL pointing to resourceName that is relative to contextClass, if the resource is found in the class path.

Throws:
IllegalArgumentException - if resource is not found