org.springframework.core.io

## 类 AbstractFileResolvingResource

- java.lang.Object
- - org.springframework.core.io.AbstractResource
  - - org.springframework.core.io.AbstractFileResolvingResource

- 所有已实现的接口:
    InputStreamSource, Resource
  直接已知子类:
    ClassPathResource, UrlResource

      public abstract class AbstractFileResolvingResource
      extends AbstractResource

  Abstract base class for resources which resolve URLs into File references, such as `UrlResource` or `ClassPathResource`.

  Detects the "file" protocol as well as the JBoss "vfs" protocol in URLs, resolving file system references accordingly.

  从以下版本开始:
    3.0
  作者:
    Juergen Hoeller

- - ### 构造器概要

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

  - ### 方法概要

    所有方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `long` | `contentLength()` This implementation reads the entire InputStream to calculate the content length.
    `protected void` | `customizeConnection(HttpURLConnection con)` Customize the given `HttpURLConnection`, obtained in the course of an `exists()`, `contentLength()` or `lastModified()` call.
    `protected void` | `customizeConnection(URLConnection con)` Customize the given `URLConnection`, obtained in the course of an `exists()`, `contentLength()` or `lastModified()` call.
    `boolean` | `exists()` This implementation checks whether a File can be opened, falling back to whether an InputStream can be opened.
    `File` | `getFile()` This implementation returns a File reference for the underlying class path resource, provided that it refers to a file in the file system.
    `protected File` | `getFile(URI uri)` This implementation returns a File reference for the given URI-identified resource, provided that it refers to a file in the file system.
    `protected File` | `getFileForLastModifiedCheck()` This implementation determines the underlying File (or jar file, in case of a resource in a jar/zip).
    `boolean` | `isFile()` This implementation always returns `false`.
    `protected boolean` | `isFile(URI uri)` This implementation returns a File reference for the given URI-identified resource, provided that it refers to a file in the file system.
    `boolean` | `isReadable()` This implementation always returns `true`.
    `long` | `lastModified()` This implementation checks the timestamp of the underlying File, if available.
    `ReadableByteChannel` | `readableChannel()` This implementation returns a FileChannel for the given URI-identified resource, provided that it refers to a file in the file system.

    - ### 从类继承的方法 org.springframework.core.io.AbstractResource

      `createRelative, equals, getFilename, getURI, getURL, hashCode, isOpen, toString`

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### 从接口继承的方法 org.springframework.core.io.Resource

      `getDescription`

    - ### 从接口继承的方法 org.springframework.core.io.InputStreamSource

      `getInputStream`

- - ### 构造器详细资料

    - #### AbstractFileResolvingResource

          public AbstractFileResolvingResource()

  - ### 方法详细资料

    - #### exists

          public boolean exists()

      从类复制的说明: `AbstractResource`
      This implementation checks whether a File can be opened, falling back to whether an InputStream can be opened. This will cover both directories and content resources.
      指定者:
        `exists` 在接口中 `Resource`
      覆盖:
        `exists` 在类中 `AbstractResource`

    - #### isReadable

          public boolean isReadable()

      从类复制的说明: `AbstractResource`
      This implementation always returns `true`.
      指定者:
        `isReadable` 在接口中 `Resource`
      覆盖:
        `isReadable` 在类中 `AbstractResource`
      另请参阅:
        `InputStreamSource.getInputStream()`

    - #### isFile

          public boolean isFile()

      从类复制的说明: `AbstractResource`
      This implementation always returns `false`.
      指定者:
        `isFile` 在接口中 `Resource`
      覆盖:
        `isFile` 在类中 `AbstractResource`
      另请参阅:
        `Resource.getFile()`

    - #### getFile

          public File getFile()
                       throws IOException

      This implementation returns a File reference for the underlying class path resource, provided that it refers to a file in the file system.
      指定者:
        `getFile` 在接口中 `Resource`
      覆盖:
        `getFile` 在类中 `AbstractResource`
      抛出:
        `FileNotFoundException` - if the resource cannot be resolved as absolute file path, i.e. if the resource is not available in a file system
        `IOException` - in case of general resolution/reading failures
      另请参阅:
        `ResourceUtils.getFile(java.net.URL, String)`

    - #### getFileForLastModifiedCheck

          protected File getFileForLastModifiedCheck()
                                              throws IOException

      This implementation determines the underlying File (or jar file, in case of a resource in a jar/zip).
      覆盖:
        `getFileForLastModifiedCheck` 在类中 `AbstractResource`
      返回:
        the File to use for timestamp checking (never `null`)
      抛出:
        `FileNotFoundException` - if the resource cannot be resolved as an absolute file path, i.e. is not available in a file system
        `IOException` - in case of general resolution/reading failures

    - #### isFile

          protected boolean isFile(URI uri)

      This implementation returns a File reference for the given URI-identified resource, provided that it refers to a file in the file system.
      从以下版本开始:
        5.0
      另请参阅:
        `getFile(URI)`

    - #### getFile

          protected File getFile(URI uri)
                          throws IOException

      This implementation returns a File reference for the given URI-identified resource, provided that it refers to a file in the file system.
      抛出:
        `IOException`
      另请参阅:
        `ResourceUtils.getFile(java.net.URI, String)`

    - #### readableChannel

          public ReadableByteChannel readableChannel()
                                              throws IOException

      This implementation returns a FileChannel for the given URI-identified resource, provided that it refers to a file in the file system.
      指定者:
        `readableChannel` 在接口中 `Resource`
      覆盖:
        `readableChannel` 在类中 `AbstractResource`
      返回:
        the byte channel for the underlying resource (must not be `null`)
      抛出:
        `FileNotFoundException` - if the underlying resource doesn't exist
        `IOException` - if the content channel could not be opened
      从以下版本开始:
        5.0
      另请参阅:
        `getFile()`

    - #### contentLength

          public long contentLength()
                             throws IOException

      从类复制的说明: `AbstractResource`
      This implementation reads the entire InputStream to calculate the content length. Subclasses will almost always be able to provide a more optimal version of this, e.g. checking a File length.
      指定者:
        `contentLength` 在接口中 `Resource`
      覆盖:
        `contentLength` 在类中 `AbstractResource`
      抛出:
        `IOException` - if the resource cannot be resolved (in the file system or as some other known physical resource type)
      另请参阅:
        `InputStreamSource.getInputStream()`

    - #### lastModified

          public long lastModified()
                            throws IOException

      从类复制的说明: `AbstractResource`
      This implementation checks the timestamp of the underlying File, if available.
      指定者:
        `lastModified` 在接口中 `Resource`
      覆盖:
        `lastModified` 在类中 `AbstractResource`
      抛出:
        `IOException` - if the resource cannot be resolved (in the file system or as some other known physical resource type)
      另请参阅:
        `AbstractResource.getFileForLastModifiedCheck()`

    - #### customizeConnection

          protected void customizeConnection(URLConnection con)
                                      throws IOException

      Customize the given `URLConnection`, obtained in the course of an `exists()`, `contentLength()` or `lastModified()` call.

      Calls `ResourceUtils.useCachesIfNecessary(URLConnection)` and delegates to `customizeConnection(HttpURLConnection)` if possible. Can be overridden in subclasses.

      参数:
        `con` - the URLConnection to customize
      抛出:
        `IOException` - if thrown from URLConnection methods

    - #### customizeConnection

          protected void customizeConnection(HttpURLConnection con)
                                      throws IOException

      Customize the given `HttpURLConnection`, obtained in the course of an `exists()`, `contentLength()` or `lastModified()` call.

      Sets request method "HEAD" by default. Can be overridden in subclasses.

      参数:
        `con` - the HttpURLConnection to customize
      抛出:
        `IOException` - if thrown from HttpURLConnection methods