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, wait
getLength, retrySupported
public 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.IOException
public void writeTo(OutputStream out) throws IOException
HttpContent
The 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 HttpContent
IOException
public String getEncoding()
HttpContent
"gzip"
) or null
for none.getEncoding
in interface HttpContent
public String getType()
HttpContent
null
for none.getType
in interface HttpContent
public 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 streamIOException
public 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 methodIOException
Copyright © 2011-2012 Google. All Rights Reserved.