org.springframework.core.io

## 类 PathResource

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

- 所有已实现的接口:
    InputStreamSource, Resource, WritableResource

      public class PathResource
      extends AbstractResource
      implements WritableResource

  `Resource` implementation for `java.nio.file.Path` handles. Supports resolution as File, and also as URL. Implements the extended `WritableResource` interface.
  从以下版本开始:
    4.0
  作者:
    Philippe Marschall, Juergen Hoeller
  另请参阅:
    `Path`, `Files`, `FileSystemResource`

- - ### 构造器概要

    构造器
    构造器和说明
    `PathResource(Path path)` Create a new PathResource from a Path handle.
    `PathResource(String path)` Create a new PathResource from a Path handle.
    `PathResource(URI uri)` Create a new PathResource from a Path handle.

  - ### 方法概要

    所有方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `long` | `contentLength()` This implementation returns the underlying file's length.
    `Resource` | `createRelative(String relativePath)` This implementation creates a PathResource, applying the given path relative to the path of the underlying file of this resource descriptor.
    `boolean` | `equals(Object other)` This implementation compares the underlying Path references.
    `boolean` | `exists()` This implementation returns whether the underlying file exists.
    `String` | `getDescription()` Return a description for this resource, to be used for error output when working with the resource.
    `File` | `getFile()` This implementation returns the underlying File reference.
    `String` | `getFilename()` This implementation returns the name of the file.
    `InputStream` | `getInputStream()` This implementation opens a InputStream for the underlying file.
    `OutputStream` | `getOutputStream()` This implementation opens a OutputStream for the underlying file.
    `String` | `getPath()` Return the file path for this resource.
    `URI` | `getURI()` This implementation returns a URI for the underlying file.
    `URL` | `getURL()` This implementation returns a URL for the underlying file.
    `int` | `hashCode()` This implementation returns the hash code of the underlying Path reference.
    `boolean` | `isFile()` This implementation always indicates a file.
    `boolean` | `isReadable()` This implementation checks whether the underlying file is marked as readable (and corresponds to an actual file with content, not to a directory).
    `boolean` | `isWritable()` This implementation checks whether the underlying file is marked as writable (and corresponds to an actual file with content, not to a directory).
    `long` | `lastModified()` This implementation returns the underlying File's timestamp.
    `ReadableByteChannel` | `readableChannel()` This implementation opens a Channel for the underlying file.
    `WritableByteChannel` | `writableChannel()` This implementation opens a Channel for the underlying file.

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

      `getFileForLastModifiedCheck, isOpen, toString`

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

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

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

      `isOpen`

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

    - #### PathResource

          public PathResource(Path path)

      Create a new PathResource from a Path handle.

      Note: Unlike `FileSystemResource`, when building relative resources via `createRelative(java.lang.String)`, the relative path will be built underneath the given root: e.g. Paths.get("C:/dir1/"), relative path "dir2" -> "C:/dir1/dir2"!

      参数:
        `path` - a Path handle

    - #### PathResource

          public PathResource(String path)

      Create a new PathResource from a Path handle.

      Note: Unlike `FileSystemResource`, when building relative resources via `createRelative(java.lang.String)`, the relative path will be built underneath the given root: e.g. Paths.get("C:/dir1/"), relative path "dir2" -> "C:/dir1/dir2"!

      参数:
        `path` - a path
      另请参阅:
        `Paths.get(String, String...)`

    - #### PathResource

          public PathResource(URI uri)

      Create a new PathResource from a Path handle.

      Note: Unlike `FileSystemResource`, when building relative resources via `createRelative(java.lang.String)`, the relative path will be built underneath the given root: e.g. Paths.get("C:/dir1/"), relative path "dir2" -> "C:/dir1/dir2"!

      参数:
        `uri` - a path URI
      另请参阅:
        `Paths.get(URI)`

  - ### 方法详细资料

    - #### getPath

          public final String getPath()

      Return the file path for this resource.

    - #### exists

          public boolean exists()

      This implementation returns whether the underlying file exists.
      指定者:
        `exists` 在接口中 `Resource`
      覆盖:
        `exists` 在类中 `AbstractResource`
      另请参阅:
        `Files.exists(Path, java.nio.file.LinkOption...)`

    - #### isReadable

          public boolean isReadable()

      This implementation checks whether the underlying file is marked as readable (and corresponds to an actual file with content, not to a directory).
      指定者:
        `isReadable` 在接口中 `Resource`
      覆盖:
        `isReadable` 在类中 `AbstractResource`
      另请参阅:
        `Files.isReadable(Path)`, `Files.isDirectory(Path, java.nio.file.LinkOption...)`

    - #### getInputStream

          public InputStream getInputStream()
                                     throws IOException

      This implementation opens a InputStream for the underlying file.
      指定者:
        `getInputStream` 在接口中 `InputStreamSource`
      返回:
        the input stream for the underlying resource (must not be `null`)
      抛出:
        `FileNotFoundException` - if the underlying resource doesn't exist
        `IOException` - if the content stream could not be opened
      另请参阅:
        `FileSystemProvider.newInputStream(Path, OpenOption...)`

    - #### isWritable

          public boolean isWritable()

      This implementation checks whether the underlying file is marked as writable (and corresponds to an actual file with content, not to a directory).
      指定者:
        `isWritable` 在接口中 `WritableResource`
      另请参阅:
        `Files.isWritable(Path)`, `Files.isDirectory(Path, java.nio.file.LinkOption...)`

    - #### getOutputStream

          public OutputStream getOutputStream()
                                       throws IOException

      This implementation opens a OutputStream for the underlying file.
      指定者:
        `getOutputStream` 在接口中 `WritableResource`
      抛出:
        `IOException` - if the stream could not be opened
      另请参阅:
        `FileSystemProvider.newOutputStream(Path, OpenOption...)`

    - #### getURL

          public URL getURL()
                     throws IOException

      This implementation returns a URL for the underlying file.
      指定者:
        `getURL` 在接口中 `Resource`
      覆盖:
        `getURL` 在类中 `AbstractResource`
      抛出:
        `IOException` - if the resource cannot be resolved as URL, i.e. if the resource is not available as descriptor
      另请参阅:
        `Path.toUri()`, `URI.toURL()`

    - #### getURI

          public URI getURI()
                     throws IOException

      This implementation returns a URI for the underlying file.
      指定者:
        `getURI` 在接口中 `Resource`
      覆盖:
        `getURI` 在类中 `AbstractResource`
      抛出:
        `IOException` - if the resource cannot be resolved as URI, i.e. if the resource is not available as descriptor
      另请参阅:
        `Path.toUri()`

    - #### isFile

          public boolean isFile()

      This implementation always indicates a file.
      指定者:
        `isFile` 在接口中 `Resource`
      覆盖:
        `isFile` 在类中 `AbstractResource`
      另请参阅:
        `Resource.getFile()`

    - #### getFile

          public File getFile()
                       throws IOException

      This implementation returns the underlying File reference.
      指定者:
        `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
      另请参阅:
        `InputStreamSource.getInputStream()`

    - #### readableChannel

          public ReadableByteChannel readableChannel()
                                              throws IOException

      This implementation opens a Channel for the underlying file.
      指定者:
        `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
      另请参阅:
        `Files.newByteChannel(Path, OpenOption...)`

    - #### writableChannel

          public WritableByteChannel writableChannel()
                                              throws IOException

      This implementation opens a Channel for the underlying file.
      指定者:
        `writableChannel` 在接口中 `WritableResource`
      返回:
        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
      另请参阅:
        `Files.newByteChannel(Path, OpenOption...)`

    - #### contentLength

          public long contentLength()
                             throws IOException

      This implementation returns the underlying file's 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

      This implementation returns the underlying File's timestamp.
      指定者:
        `lastModified` 在接口中 `Resource`
      覆盖:
        `lastModified` 在类中 `AbstractResource`
      抛出:
        `IOException` - if the resource cannot be resolved (in the file system or as some other known physical resource type)
      另请参阅:
        `Files.getLastModifiedTime(Path, java.nio.file.LinkOption...)`

    - #### createRelative

          public Resource createRelative(String relativePath)
                                  throws IOException

      This implementation creates a PathResource, applying the given path relative to the path of the underlying file of this resource descriptor.
      指定者:
        `createRelative` 在接口中 `Resource`
      覆盖:
        `createRelative` 在类中 `AbstractResource`
      参数:
        `relativePath` - the relative path (relative to this resource)
      返回:
        the resource handle for the relative resource
      抛出:
        `IOException` - if the relative resource cannot be determined
      另请参阅:
        `Path.resolve(String)`

    - #### getFilename

          public String getFilename()

      This implementation returns the name of the file.
      指定者:
        `getFilename` 在接口中 `Resource`
      覆盖:
        `getFilename` 在类中 `AbstractResource`
      另请参阅:
        `Path.getFileName()`

    - #### getDescription

          public String getDescription()

      从接口复制的说明: `Resource`
      Return a description for this resource, to be used for error output when working with the resource.

      Implementations are also encouraged to return this value from their `toString` method.

      指定者:
        `getDescription` 在接口中 `Resource`
      另请参阅:
        `Object.toString()`

    - #### equals

          public boolean equals(Object other)

      This implementation compares the underlying Path references.
      覆盖:
        `equals` 在类中 `AbstractResource`
      另请参阅:
        `Resource.getDescription()`

    - #### hashCode

          public int hashCode()

      This implementation returns the hash code of the underlying Path reference.
      覆盖:
        `hashCode` 在类中 `AbstractResource`
      另请参阅:
        `Resource.getDescription()`