Serializes HTTP request content from an input stream into an output stream.
The #type field is required. Subclasses should implement the #getLength(),
#getInputStream(), and #retrySupported() for their specific type of input stream.
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 ByteStreams#limit(InputStream,
long).
Return an input stream for the specific implementation type of AbstractInputStreamContent. If the specific implementation will return true for #retrySupported() this should be a factory function which will create a new InputStream from the source data whenever invoked.
Writes the byte content to the given output stream.
Implementations must not close the output stream, and instead should flush the output
stream. Some callers may assume that the output stream has not been closed, and will fail to
work if it has been closed.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Class AbstractInputStreamContent (2.0.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.0.0 (latest)](/java/docs/reference/google-http-client/latest/com.google.api.client.http.AbstractInputStreamContent)\n- [1.47.1](/java/docs/reference/google-http-client/1.47.1/com.google.api.client.http.AbstractInputStreamContent)\n- [1.46.3](/java/docs/reference/google-http-client/1.46.3/com.google.api.client.http.AbstractInputStreamContent)\n- [1.45.3](/java/docs/reference/google-http-client/1.45.3/com.google.api.client.http.AbstractInputStreamContent)\n- [1.44.2](/java/docs/reference/google-http-client/1.44.2/com.google.api.client.http.AbstractInputStreamContent)\n- [1.43.2](/java/docs/reference/google-http-client/1.43.2/com.google.api.client.http.AbstractInputStreamContent)\n- [1.42.3](/java/docs/reference/google-http-client/1.42.3/com.google.api.client.http.AbstractInputStreamContent)\n- [1.41.8](/java/docs/reference/google-http-client/1.41.8/com.google.api.client.http.AbstractInputStreamContent) \n\n public abstract class AbstractInputStreamContent implements HttpContent\n\nSerializes HTTP request content from an input stream into an output stream.\n\nThe #type field is required. Subclasses should implement the #getLength(),\n[#getInputStream()](/java/docs/reference/google-http-client/latest/com.google.api.client.http.AbstractInputStreamContent#com_google_api_client_http_AbstractInputStreamContent_getInputStream__), and #retrySupported() for their specific type of input stream.\nBy default, all content is read from the input stream. If instead you want to limit the maximum\namount of content read from the input stream, you may use ByteStreams#limit(InputStream, long).\n\nImplementations don't need to be thread-safe. \n\nInheritance\n-----------\n\n[java.lang.Object](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) \\\u003e AbstractInputStreamContent \n\nImplements\n----------\n\n[HttpContent](/java/docs/reference/google-http-client/latest/com.google.api.client.http.HttpContent) \n\nInherited Members\n-----------------\n\n[Object.clone()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--) \n[Object.equals(Object)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-) \n[Object.finalize()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--) \n[Object.getClass()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--) \n[Object.hashCode()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--) \n[Object.notify()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--) \n[Object.notifyAll()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--) \n[Object.toString()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--) \n[Object.wait()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--) \n[Object.wait(long)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-) \n[Object.wait(long,int)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-)\n\nConstructors\n------------\n\n### AbstractInputStreamContent(String type)\n\n public AbstractInputStreamContent(String type)\n\nMethods\n-------\n\n### getCloseInputStream()\n\n public final boolean getCloseInputStream()\n\nReturns whether the input stream should be closed at the end of [#writeTo](/java/docs/reference/google-http-client/latest/com.google.api.client.http.AbstractInputStreamContent#com_google_api_client_http_AbstractInputStreamContent_writeTo_). Default is\n`true`.\n\n### getInputStream()\n\n public abstract InputStream getInputStream()\n\nReturn an input stream for the specific implementation type of [AbstractInputStreamContent](/java/docs/reference/google-http-client/latest/com.google.api.client.http.AbstractInputStreamContent). If the specific implementation will return `true` for #retrySupported() this should be a factory function which will create a new [InputStream](https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html) from the source data whenever invoked.\n\n### getType()\n\n public String getType()\n\nReturns the content type or `null` for none.\n\n### setCloseInputStream(boolean closeInputStream)\n\n public AbstractInputStreamContent setCloseInputStream(boolean closeInputStream)\n\nSets whether the input stream should be closed at the end of [#writeTo](/java/docs/reference/google-http-client/latest/com.google.api.client.http.AbstractInputStreamContent#com_google_api_client_http_AbstractInputStreamContent_writeTo_). Default is\n`true`. Subclasses should override by calling super.\n\n### setType(String type)\n\n public AbstractInputStreamContent setType(String type)\n\nSets the content type or `null` for none. Subclasses should override by calling super.\n\n### writeTo(OutputStream out)\n\n public void writeTo(OutputStream out)\n\nWrites the byte content to the given output stream.\n\nImplementations must not close the output stream, and instead should flush the output\nstream. Some callers may assume that the output stream has not been closed, and will fail to\nwork if it has been closed."]]