public abstract class AbstractInputStreamContent extends Object implements HttpContent
The type field is required. Subclasses should implement the HttpContent.getLength(),
getInputStream(), and HttpContent.retrySupported() for their specific type of input stream.
If you need to limit the amount of content read from the input stream, you may use
LimitInputStream.
Implementations don't need to be thread-safe.
By default, all content is read from the input stream. If instead you want to limit the maximum
amount of content read from the input stream, you may use LimitInputStream.
| Constructor and Description |
|---|
AbstractInputStreamContent(String type) |
| Modifier and Type | Method and Description |
|---|---|
static void |
copy(InputStream inputStream,
OutputStream outputStream)
Writes the content provided by the given source input stream into the given destination output
stream.
|
static void |
copy(InputStream inputStream,
OutputStream outputStream,
boolean closeInputStream)
Writes the content provided by the given source input stream into the given destination output
stream.
|
boolean |
getCloseInputStream()
Returns whether the input stream should be closed at the end of
writeTo(java.io.OutputStream). |
String |
getEncoding()
Returns the content encoding (for example
"gzip") or null for none. |
abstract InputStream |
getInputStream()
Return an input stream for the specific implementation type of
AbstractInputStreamContent. |
String |
getType()
Returns the content type or
null for none. |
AbstractInputStreamContent |
setCloseInputStream(boolean closeInputStream)
Sets whether the input stream should be closed at the end of
writeTo(java.io.OutputStream). |
AbstractInputStreamContent |
setEncoding(String encoding)
Sets the content encoding (for example
"gzip") or null for none. |
AbstractInputStreamContent |
setType(String type)
Sets the content type or
null for none. |
void |
writeTo(OutputStream out)
Writes the content to the given output stream.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetLength, retrySupportedpublic AbstractInputStreamContent(String type)
type - Content type or null for nonepublic abstract InputStream getInputStream() throws IOException
AbstractInputStreamContent. If the specific implementation will return true for
HttpContent.retrySupported() this should be a factory function which will create a new
InputStream from the source data whenever invoked.IOExceptionpublic void writeTo(OutputStream out) throws IOException
HttpContentThe recommendation for implementations is that they should not close the output stream. Callers should not assume whether or not the output stream has been closed. Implementations that do not close the output stream should flush it at the end of the method.
writeTo in interface HttpContentIOExceptionpublic String getEncoding()
HttpContent"gzip") or null for none.getEncoding in interface HttpContentpublic String getType()
HttpContentnull for none.getType in interface HttpContentpublic final boolean getCloseInputStream()
writeTo(java.io.OutputStream). Default is
true.public AbstractInputStreamContent setEncoding(String encoding)
"gzip") or null for none. Subclasses
should override by calling super.public AbstractInputStreamContent setType(String type)
null for none. Subclasses should override by calling super.public AbstractInputStreamContent setCloseInputStream(boolean closeInputStream)
writeTo(java.io.OutputStream). Default is
true. Subclasses should override by calling super.public static void copy(InputStream inputStream, OutputStream outputStream) throws IOException
The input stream is guaranteed to be closed at the end of this method.
Sample use:
static void downloadMedia(HttpResponse response, File file)
throws IOException {
FileOutputStream out = new FileOutputStream(file);
try {
AbstractInputStreamContent.copy(response.getContent(), out);
} finally {
out.close();
}
}
inputStream - source input streamoutputStream - destination output streamIOExceptionpublic static void copy(InputStream inputStream, OutputStream outputStream, boolean closeInputStream) throws IOException
Sample use:
static void downloadMedia(HttpResponse response, File file)
throws IOException {
FileOutputStream out = new FileOutputStream(file);
try {
AbstractInputStreamContent.copy(response.getContent(), out, true);
} finally {
out.close();
}
}
inputStream - source input streamoutputStream - destination output streamcloseInputStream - whether the input stream should be closed at the end of this methodIOExceptionCopyright © 2011-2012 Google. All Rights Reserved.