public abstract class ResourceUtils extends Object
Consider using Spring's Resource abstraction in the core package
 for handling all kinds of file resources in a uniform manner.
 ResourceLoader's getResource()
 method can resolve any location to a Resource
 object, which in turn allows one to obtain a java.io.File in the
 file system through its getFile() method.
Resource, 
ClassPathResource, 
FileSystemResource, 
UrlResource, 
ResourceLoader| Modifier and Type | Field and Description | 
|---|---|
| static String | CLASSPATH_URL_PREFIXPseudo URL prefix for loading from the class path: "classpath:". | 
| static String | FILE_URL_PREFIXURL prefix for loading from the file system: "file:". | 
| static String | JAR_FILE_EXTENSIONFile extension for a regular jar file: ".jar". | 
| static String | JAR_URL_PREFIXURL prefix for loading from a jar file: "jar:". | 
| static String | JAR_URL_SEPARATORSeparator between JAR URL and file path within the JAR: "!/". | 
| static String | URL_PROTOCOL_FILEURL protocol for a file in the file system: "file". | 
| static String | URL_PROTOCOL_JARURL protocol for an entry from a jar file: "jar". | 
| static String | URL_PROTOCOL_VFSURL protocol for a general JBoss VFS resource: "vfs". | 
| static String | URL_PROTOCOL_VFSFILEURL protocol for a JBoss file system resource: "vfsfile". | 
| static String | URL_PROTOCOL_VFSZIPURL protocol for an entry from a JBoss jar file: "vfszip". | 
| static String | URL_PROTOCOL_WARURL protocol for an entry from a war file: "war". | 
| static String | URL_PROTOCOL_WSJARURL protocol for an entry from a WebSphere jar file: "wsjar". | 
| static String | URL_PROTOCOL_ZIPURL protocol for an entry from a zip file: "zip". | 
| static String | WAR_URL_PREFIXURL prefix for loading from a war file on Tomcat: "war:". | 
| static String | WAR_URL_SEPARATORSpecial separator between WAR URL and jar part on Tomcat. | 
| Constructor and Description | 
|---|
| ResourceUtils() | 
| Modifier and Type | Method and Description | 
|---|---|
| static URL | extractArchiveURL(URL jarUrl)Extract the URL for the outermost archive from the given jar/war URL
 (which may point to a resource in a jar file or to a jar file itself). | 
| static URL | extractJarFileURL(URL jarUrl)Extract the URL for the actual jar file from the given URL
 (which may point to a resource in a jar file or to a jar file itself). | 
| static File | getFile(String resourceLocation)Resolve the given resource location to a  java.io.File,
 i.e. | 
| static File | getFile(URI resourceUri)Resolve the given resource URI to a  java.io.File,
 i.e. | 
| static File | getFile(URI resourceUri,
       String description)Resolve the given resource URI to a  java.io.File,
 i.e. | 
| static File | getFile(URL resourceUrl)Resolve the given resource URL to a  java.io.File,
 i.e. | 
| static File | getFile(URL resourceUrl,
       String description)Resolve the given resource URL to a  java.io.File,
 i.e. | 
| static URL | getURL(String resourceLocation)Resolve the given resource location to a  java.net.URL. | 
| static boolean | isFileURL(URL url)Determine whether the given URL points to a resource in the file system,
 i.e. | 
| static boolean | isJarFileURL(URL url)Determine whether the given URL points to a jar file itself,
 that is, has protocol "file" and ends with the ".jar" extension. | 
| static boolean | isJarURL(URL url)Determine whether the given URL points to a resource in a jar file. | 
| static boolean | isUrl(String resourceLocation)Return whether the given resource location is a URL:
 either a special "classpath" pseudo URL or a standard URL. | 
| static URI | toURI(String location)Create a URI instance for the given location String,
 replacing spaces with "%20" URI encoding first. | 
| static URI | toURI(URL url)Create a URI instance for the given URL,
 replacing spaces with "%20" URI encoding first. | 
| static void | useCachesIfNecessary(URLConnection con)Set the  "useCaches"flag on the
 given connection, preferringfalsebut leaving the
 flag attruefor JNLP based resources. | 
public static final String CLASSPATH_URL_PREFIX
public static final String FILE_URL_PREFIX
public static final String JAR_URL_PREFIX
public static final String WAR_URL_PREFIX
public static final String URL_PROTOCOL_FILE
public static final String URL_PROTOCOL_JAR
public static final String URL_PROTOCOL_WAR
public static final String URL_PROTOCOL_ZIP
public static final String URL_PROTOCOL_WSJAR
public static final String URL_PROTOCOL_VFSZIP
public static final String URL_PROTOCOL_VFSFILE
public static final String URL_PROTOCOL_VFS
public static final String JAR_FILE_EXTENSION
public static final String JAR_URL_SEPARATOR
public static final String WAR_URL_SEPARATOR
public static boolean isUrl(@Nullable String resourceLocation)
resourceLocation - the location String to checkCLASSPATH_URL_PREFIX, 
URLpublic static URL getURL(String resourceLocation) throws FileNotFoundException
java.net.URL.
 Does not check whether the URL actually exists; simply returns the URL that the given location would correspond to.
resourceLocation - the resource location to resolve: either a
 "classpath:" pseudo URL, a "file:" URL, or a plain file pathFileNotFoundException - if the resource cannot be resolved to a URLpublic static File getFile(String resourceLocation) throws FileNotFoundException
java.io.File,
 i.e. to a file in the file system.
 Does not check whether the file actually exists; simply returns the File that the given location would correspond to.
resourceLocation - the resource location to resolve: either a
 "classpath:" pseudo URL, a "file:" URL, or a plain file pathFileNotFoundException - if the resource cannot be resolved to
 a file in the file systempublic static File getFile(URL resourceUrl) throws FileNotFoundException
java.io.File,
 i.e. to a file in the file system.resourceUrl - the resource URL to resolveFileNotFoundException - if the URL cannot be resolved to
 a file in the file systempublic static File getFile(URL resourceUrl, String description) throws FileNotFoundException
java.io.File,
 i.e. to a file in the file system.resourceUrl - the resource URL to resolvedescription - a description of the original resource that
 the URL was created for (for example, a class path location)FileNotFoundException - if the URL cannot be resolved to
 a file in the file systempublic static File getFile(URI resourceUri) throws FileNotFoundException
java.io.File,
 i.e. to a file in the file system.resourceUri - the resource URI to resolveFileNotFoundException - if the URL cannot be resolved to
 a file in the file systempublic static File getFile(URI resourceUri, String description) throws FileNotFoundException
java.io.File,
 i.e. to a file in the file system.resourceUri - the resource URI to resolvedescription - a description of the original resource that
 the URI was created for (for example, a class path location)FileNotFoundException - if the URL cannot be resolved to
 a file in the file systempublic static boolean isFileURL(URL url)
url - the URL to checkpublic static boolean isJarURL(URL url)
url - the URL to checkpublic static boolean isJarFileURL(URL url)
url - the URL to checkpublic static URL extractJarFileURL(URL jarUrl) throws MalformedURLException
jarUrl - the original URLMalformedURLException - if no valid jar file URL could be extractedpublic static URL extractArchiveURL(URL jarUrl) throws MalformedURLException
In the case of a jar file nested within a war file, this will return a URL to the war file since that is the one resolvable in the file system.
jarUrl - the original URLMalformedURLException - if no valid jar file URL could be extractedextractJarFileURL(URL)public static URI toURI(URL url) throws URISyntaxException
url - the URL to convert into a URI instanceURISyntaxException - if the URL wasn't a valid URIURL.toURI()public static URI toURI(String location) throws URISyntaxException
location - the location String to convert into a URI instanceURISyntaxException - if the location wasn't a valid URIpublic static void useCachesIfNecessary(URLConnection con)
"useCaches" flag on the
 given connection, preferring false but leaving the
 flag at true for JNLP based resources.con - the URLConnection to set the flag on