java.io.File
This is the base interface for Spring's more extensive Resource interface.
For single-use streams, InputStreamResource can be used for any given InputStream.
InputStream
An InputStream can be opened for every resource if it exists in physical form, but a URL or File handle can just be returned for certain resources.
String
java.net.URL