# Package org.springframework.core.io

@NonNullApi @NonNullFields package org.springframework.core.io
Generic abstraction for (file-based) resources, used throughout the framework.

Related Packages
Package
Description
org.springframework.core
Provides basic classes for exception handling and version detection, and other core helpers that are not specific to any part of the framework.
org.springframework.core.io.buffer
Generic abstraction for working with byte buffer implementations.
org.springframework.core.io.support
Support classes for Spring's resource abstraction.
Class
Description
AbstractFileResolvingResource
Abstract base class for resources which resolve URLs into File references, such as `UrlResource` or `ClassPathResource`.
AbstractResource
Convenience base class for `Resource` implementations, pre-implementing typical behavior.
ByteArrayResource
`Resource` implementation for a given byte array.
ClassPathResource
`Resource` implementation for class path resources.
ClassRelativeResourceLoader
`ResourceLoader` implementation that interprets plain resource paths as relative to a given `java.lang.Class`.
ContextResource
Extended interface for a resource that is loaded from an enclosing 'context', for example, from a `jakarta.servlet.ServletContext` but also from plain classpath paths or relative file system paths (specified without an explicit prefix, hence applying relative to the local `ResourceLoader`'s context).
DefaultResourceLoader
Default implementation of the `ResourceLoader` interface.
DefaultResourceLoader.ClassPathContextResource
ClassPathResource that explicitly expresses a context-relative path through implementing the ContextResource interface.
DescriptiveResource
Simple `Resource` implementation that holds a resource description but does not point to an actually readable resource.
FileSystemResource
`Resource` implementation for `java.io.File` and `java.nio.file.Path` handles with a file system target.
FileSystemResourceLoader
`ResourceLoader` implementation that resolves plain paths as file system resources rather than as class path resources (the latter is `DefaultResourceLoader`'s default strategy).
FileUrlResource
Subclass of `UrlResource` which assumes file resolution, to the degree of implementing the `WritableResource` interface for it.
InputStreamResource
`Resource` implementation for a given `InputStream` or a given `InputStreamSource` (which can be supplied as a lambda expression) for a lazy `InputStream` on demand.
InputStreamSource
Simple interface for objects that are sources for an `InputStream`.
ModuleResource
`Resource` implementation for `Module` resolution, performing `ModuleResource.getInputStream()` access via `Module.getResourceAsStream(java.lang.String)`.
PathResource
`Resource` implementation for `Path` handles, performing all operations and transformations via the `Path` API.
ProtocolResolver
A resolution strategy for protocol-specific resource handles.
Resource
Interface for a resource descriptor that abstracts from the actual type of underlying resource, such as a file or class path resource.
ResourceEditor
`Editor` for `Resource` descriptors, to automatically convert `String` locations for example, `file:C:/myfile.txt` or `classpath:myfile.txt` to `Resource` properties instead of using a `String` location property.
ResourceLoader
Strategy interface for loading resources (for example, class path or file system resources).
UrlResource
`Resource` implementation for `java.net.URL` locators.
VfsResource
JBoss VFS based `Resource` implementation.
VfsUtils
Utility for detecting and accessing JBoss VFS in the classpath.
WritableResource
Extended interface for a resource that supports writing to it.