org.springframework.util

## 类 ResourceUtils

- java.lang.Object
- - org.springframework.util.ResourceUtils

-     public abstract class ResourceUtils
      extends Object

  Utility methods for resolving resource locations to files in the file system. Mainly for internal use within the framework.

  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.

  从以下版本开始:
    1.1.5
  作者:
    Juergen Hoeller
  另请参阅:
    `Resource`, `ClassPathResource`, `FileSystemResource`, `UrlResource`, `ResourceLoader`

- - ### 字段概要

    字段
    限定符和类型 | 字段和说明
    --- | ---
    `static String` | `CLASSPATH_URL_PREFIX` Pseudo URL prefix for loading from the class path: "classpath:"
    `static String` | `FILE_URL_PREFIX` URL prefix for loading from the file system: "file:"
    `static String` | `JAR_FILE_EXTENSION` File extension for a regular jar file: ".jar"
    `static String` | `JAR_URL_PREFIX` URL prefix for loading from a jar file: "jar:"
    `static String` | `JAR_URL_SEPARATOR` Separator between JAR URL and file path within the JAR: "!
    `static String` | `URL_PROTOCOL_FILE` URL protocol for a file in the file system: "file"
    `static String` | `URL_PROTOCOL_JAR` URL protocol for an entry from a jar file: "jar"
    `static String` | `URL_PROTOCOL_VFS` URL protocol for a general JBoss VFS resource: "vfs"
    `static String` | `URL_PROTOCOL_VFSFILE` URL protocol for a JBoss file system resource: "vfsfile"
    `static String` | `URL_PROTOCOL_VFSZIP` URL protocol for an entry from a JBoss jar file: "vfszip"
    `static String` | `URL_PROTOCOL_WAR` URL protocol for an entry from a war file: "war"
    `static String` | `URL_PROTOCOL_WSJAR` URL protocol for an entry from a WebSphere jar file: "wsjar"
    `static String` | `URL_PROTOCOL_ZIP` URL protocol for an entry from a zip file: "zip"
    `static String` | `WAR_URL_PREFIX` URL prefix for loading from a war file on Tomcat: "war:"
    `static String` | `WAR_URL_SEPARATOR` Special separator between WAR URL and jar part on Tomcat

  - ### 构造器概要

    构造器
    构造器和说明
    `ResourceUtils()`

  - ### 方法概要

    所有方法 静态方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `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. to a file in the file system.
    `static File` | `getFile(URI resourceUri)` Resolve the given resource URI to a `java.io.File`, i.e. to a file in the file system.
    `static File` | `getFile(URI resourceUri, String description)` Resolve the given resource URI to a `java.io.File`, i.e. to a file in the file system.
    `static File` | `getFile(URL resourceUrl)` Resolve the given resource URL to a `java.io.File`, i.e. to a file in the file system.
    `static File` | `getFile(URL resourceUrl, String description)` Resolve the given resource URL to a `java.io.File`, i.e. to a file in the file system.
    `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. has protocol "file", "vfsfile" or "vfs".
    `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, preferring `false` but leaving the flag at `true` for JNLP based resources.

    - ### 从类继承的方法 java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 字段详细资料

    - #### CLASSPATH_URL_PREFIX

          public static final String CLASSPATH_URL_PREFIX

      Pseudo URL prefix for loading from the class path: "classpath:"
      另请参阅:
        常量字段值

    - #### FILE_URL_PREFIX

          public static final String FILE_URL_PREFIX

      URL prefix for loading from the file system: "file:"
      另请参阅:
        常量字段值

    - #### JAR_URL_PREFIX

          public static final String JAR_URL_PREFIX

      URL prefix for loading from a jar file: "jar:"
      另请参阅:
        常量字段值

    - #### WAR_URL_PREFIX

          public static final String WAR_URL_PREFIX

      URL prefix for loading from a war file on Tomcat: "war:"
      另请参阅:
        常量字段值

    - #### URL_PROTOCOL_FILE

          public static final String URL_PROTOCOL_FILE

      URL protocol for a file in the file system: "file"
      另请参阅:
        常量字段值

    - #### URL_PROTOCOL_JAR

          public static final String URL_PROTOCOL_JAR

      URL protocol for an entry from a jar file: "jar"
      另请参阅:
        常量字段值

    - #### URL_PROTOCOL_WAR

          public static final String URL_PROTOCOL_WAR

      URL protocol for an entry from a war file: "war"
      另请参阅:
        常量字段值

    - #### URL_PROTOCOL_ZIP

          public static final String URL_PROTOCOL_ZIP

      URL protocol for an entry from a zip file: "zip"
      另请参阅:
        常量字段值

    - #### URL_PROTOCOL_WSJAR

          public static final String URL_PROTOCOL_WSJAR

      URL protocol for an entry from a WebSphere jar file: "wsjar"
      另请参阅:
        常量字段值

    - #### URL_PROTOCOL_VFSZIP

          public static final String URL_PROTOCOL_VFSZIP

      URL protocol for an entry from a JBoss jar file: "vfszip"
      另请参阅:
        常量字段值

    - #### URL_PROTOCOL_VFSFILE

          public static final String URL_PROTOCOL_VFSFILE

      URL protocol for a JBoss file system resource: "vfsfile"
      另请参阅:
        常量字段值

    - #### URL_PROTOCOL_VFS

          public static final String URL_PROTOCOL_VFS

      URL protocol for a general JBoss VFS resource: "vfs"
      另请参阅:
        常量字段值

    - #### JAR_FILE_EXTENSION

          public static final String JAR_FILE_EXTENSION

      File extension for a regular jar file: ".jar"
      另请参阅:
        常量字段值

    - #### JAR_URL_SEPARATOR

          public static final String JAR_URL_SEPARATOR

      Separator between JAR URL and file path within the JAR: "!/"
      另请参阅:
        常量字段值

    - #### WAR_URL_SEPARATOR

          public static final String WAR_URL_SEPARATOR

      Special separator between WAR URL and jar part on Tomcat
      另请参阅:
        常量字段值

  - ### 构造器详细资料

    - #### ResourceUtils

          public ResourceUtils()

  - ### 方法详细资料

    - #### isUrl

          public static boolean isUrl(@Nullable
                                      String resourceLocation)

      Return whether the given resource location is a URL: either a special "classpath" pseudo URL or a standard URL.
      参数:
        `resourceLocation` - the location String to check
      返回:
        whether the location qualifies as a URL
      另请参阅:
        `CLASSPATH_URL_PREFIX`, `URL`

    - #### getURL

          public static URL getURL(String resourceLocation)
                            throws FileNotFoundException

      Resolve the given resource location to a `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 path
      返回:
        a corresponding URL object
      抛出:
        `FileNotFoundException` - if the resource cannot be resolved to a URL

    - #### getFile

          public static File getFile(String resourceLocation)
                              throws FileNotFoundException

      Resolve the given resource location to a `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 path
      返回:
        a corresponding File object
      抛出:
        `FileNotFoundException` - if the resource cannot be resolved to a file in the file system

    - #### getFile

          public static File getFile(URL resourceUrl)
                              throws FileNotFoundException

      Resolve the given resource URL to a `java.io.File`, i.e. to a file in the file system.
      参数:
        `resourceUrl` - the resource URL to resolve
      返回:
        a corresponding File object
      抛出:
        `FileNotFoundException` - if the URL cannot be resolved to a file in the file system

    - #### getFile

          public static File getFile(URL resourceUrl,
                                     String description)
                              throws FileNotFoundException

      Resolve the given resource URL to a `java.io.File`, i.e. to a file in the file system.
      参数:
        `resourceUrl` - the resource URL to resolve
        `description` - a description of the original resource that the URL was created for (for example, a class path location)
      返回:
        a corresponding File object
      抛出:
        `FileNotFoundException` - if the URL cannot be resolved to a file in the file system

    - #### getFile

          public static File getFile(URI resourceUri)
                              throws FileNotFoundException

      Resolve the given resource URI to a `java.io.File`, i.e. to a file in the file system.
      参数:
        `resourceUri` - the resource URI to resolve
      返回:
        a corresponding File object
      抛出:
        `FileNotFoundException` - if the URL cannot be resolved to a file in the file system
      从以下版本开始:
        2.5

    - #### getFile

          public static File getFile(URI resourceUri,
                                     String description)
                              throws FileNotFoundException

      Resolve the given resource URI to a `java.io.File`, i.e. to a file in the file system.
      参数:
        `resourceUri` - the resource URI to resolve
        `description` - a description of the original resource that the URI was created for (for example, a class path location)
      返回:
        a corresponding File object
      抛出:
        `FileNotFoundException` - if the URL cannot be resolved to a file in the file system
      从以下版本开始:
        2.5

    - #### isFileURL

          public static boolean isFileURL(URL url)

      Determine whether the given URL points to a resource in the file system, i.e. has protocol "file", "vfsfile" or "vfs".
      参数:
        `url` - the URL to check
      返回:
        whether the URL has been identified as a file system URL

    - #### isJarURL

          public static boolean isJarURL(URL url)

      Determine whether the given URL points to a resource in a jar file. i.e. has protocol "jar", "war, ""zip", "vfszip" or "wsjar".
      参数:
        `url` - the URL to check
      返回:
        whether the URL has been identified as a JAR URL

    - #### isJarFileURL

          public 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.
      参数:
        `url` - the URL to check
      返回:
        whether the URL has been identified as a JAR file URL
      从以下版本开始:
        4.1

    - #### extractJarFileURL

          public static URL extractJarFileURL(URL jarUrl)
                                       throws MalformedURLException

      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).
      参数:
        `jarUrl` - the original URL
      返回:
        the URL for the actual jar file
      抛出:
        `MalformedURLException` - if no valid jar file URL could be extracted

    - #### extractArchiveURL

          public static URL extractArchiveURL(URL jarUrl)
                                       throws MalformedURLException

      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).

      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 URL
      返回:
        the URL for the actual jar file
      抛出:
        `MalformedURLException` - if no valid jar file URL could be extracted
      从以下版本开始:
        4.1.8
      另请参阅:
        `extractJarFileURL(URL)`

    - #### toURI

          public static URI toURI(URL url)
                           throws URISyntaxException

      Create a URI instance for the given URL, replacing spaces with "%20" URI encoding first.
      参数:
        `url` - the URL to convert into a URI instance
      返回:
        the URI instance
      抛出:
        `URISyntaxException` - if the URL wasn't a valid URI
      另请参阅:
        `URL.toURI()`

    - #### toURI

          public static URI toURI(String location)
                           throws URISyntaxException

      Create a URI instance for the given location String, replacing spaces with "%20" URI encoding first.
      参数:
        `location` - the location String to convert into a URI instance
      返回:
        the URI instance
      抛出:
        `URISyntaxException` - if the location wasn't a valid URI

    - #### useCachesIfNecessary

          public static void useCachesIfNecessary(URLConnection con)

      Set the `"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