Top Description Fields Constructors Methods
jakarta.servlet

public abstract Class ServletOutputStream

extends OutputStream
Class Inheritance
Known Direct Subclasses
jakarta.servlet.http.NoBodyOutputStream
Imports
java.io.CharConversionException, .IOException, .OutputStream, java.nio.ByteBuffer, java.text.MessageFormat, java.util.Objects, .ResourceBundle

Provides an output stream for sending binary data to the client. A ServletOutputStream object is normally retrieved via the ServletResponse#getOutputStream method.

This is an abstract class that the servlet container implements. Subclasses of this class must implement the java.io.OutputStream.write(int) method.

Author
Various
See Also
ServletResponse

Field Summary

Modifier and TypeField and Description
private static final String
private static final ResourceBundle

Constructor Summary

AccessConstructor and Description
protected
ServletOutputStream()

Does nothing, because this is an abstract class.

Method Summary

Modifier and TypeMethod and Description
public void
close()

Overrides java.io.OutputStream.close.

Implements java.io.Closeable.close.

Closes this output stream and releases any system resources associated with this stream.

public abstract boolean

Returns:

true if data can be written without blocking, otherwise returns false.
isReady
()

Returns true if it is allowable to call any method that may write data (i.e. write(), print() println() or flush).

public void
println()

Writes a carriage return-line feed (CRLF) to the client.

public void
println(String
the String to write to the client
s
)

Writes a String to the client, followed by a carriage return-line feed (CRLF).

public void
println(boolean
the boolean value to write to the client
b
)

Writes a boolean value to the client, followed by a carriage return-line feed (CRLF).

public void
println(char
the character to write to the client
c
)

Writes a character to the client, followed by a carriage return-line feed (CRLF).

public void
println(int
the int to write to the client
i
)

Writes an int to the client, followed by a carriage return-line feed (CRLF) character.

public void
println(long
the long value to write to the client
l
)

Writes a long value to the client, followed by a carriage return-line feed (CRLF).

public void
println(float
the float value to write to the client
f
)

Writes a float value to the client, followed by a carriage return-line feed (CRLF).

public void
println(double
the double value to write to the client
d
)

Writes a double value to the client, followed by a carriage return-line feed (CRLF).

public abstract void
setWriteListener(WriteListener
the WriteListener that should be notified when it's possible to write
writeListener
)

Instructs the ServletOutputStream to invoke the provided WriteListener when it is possible to write

public void
write(ByteBuffer
The buffer from which the data is written.
buffer
)

Writes from the given buffer to the output stream.

Inherited from java.io.OutputStream:
flushnullOutputStreamwritewritewrite

Field Detail

LSTRING_FILEback to summary
private static final String LSTRING_FILE
lStringsback to summary
private static final ResourceBundle lStrings

Constructor Detail

ServletOutputStreamback to summary
protected ServletOutputStream()

Does nothing, because this is an abstract class.

Method Detail

closeback to summary
public void close() throws IOException

Overrides java.io.OutputStream.close.

Implements java.io.Closeable.close.

Doc from java.io.OutputStream.close.

Closes this output stream and releases any system resources associated with this stream. The general contract of close is that it closes the output stream. A closed stream cannot perform output operations and cannot be reopened.

If this method is called when the output stream is in non-blocking mode, it will immediately return with the stream effectively closed, even if the stream contains buffered data that is yet to be written to client. The container will write this data out in the background. If this process fails the WriteListener#onError(Throwable) method will be invoked as normal.

Annotations
@Override
Exceptions
IOException:
if an I/O error occurs.
isReadyback to summary
public abstract boolean isReady()

Returns true if it is allowable to call any method that may write data (i.e. write(), print() println() or flush). In blocking mode, this method will always return true, but a subsequent call to a method that writes data may block. In non-blocking mode this method may return false, in which case it is illegal to call a method that writes data and an IllegalStateException MUST be thrown. When WriteListener#onWritePossible() is called, a call to this method that returned true is implicit.

If this method returns false and a WriteListener has been set via setWriteListener(WriteListener), then container will subsequently invoke WriteListener#onWritePossible() once a write operation becomes possible without blocking. Other than the initial call, WriteListener#onWritePossible() will only be called if and only if this method is called and returns false.

Returns:boolean

true if data can be written without blocking, otherwise returns false.

Since
Servlet 3.1
See Also
WriteListener
printlnback to summary
public void println() throws IOException

Writes a carriage return-line feed (CRLF) to the client.

Exceptions
IOException:
if an input or output exception occurred
printlnback to summary
public void println(String s) throws IOException

Writes a String to the client, followed by a carriage return-line feed (CRLF).

Parameters
s:String

the String to write to the client

Exceptions
IOException:
if an input or output exception occurred
printlnback to summary
public void println(boolean b) throws IOException

Writes a boolean value to the client, followed by a carriage return-line feed (CRLF).

Parameters
b:boolean

the boolean value to write to the client

Exceptions
IOException:
if an input or output exception occurred
printlnback to summary
public void println(char c) throws IOException

Writes a character to the client, followed by a carriage return-line feed (CRLF).

Parameters
c:char

the character to write to the client

Exceptions
IOException:
if an input or output exception occurred
printlnback to summary
public void println(int i) throws IOException

Writes an int to the client, followed by a carriage return-line feed (CRLF) character.

Parameters
i:int

the int to write to the client

Exceptions
IOException:
if an input or output exception occurred
printlnback to summary
public void println(long l) throws IOException

Writes a long value to the client, followed by a carriage return-line feed (CRLF).

Parameters
l:long

the long value to write to the client

Exceptions
IOException:
if an input or output exception occurred
printlnback to summary
public void println(float f) throws IOException

Writes a float value to the client, followed by a carriage return-line feed (CRLF).

Parameters
f:float

the float value to write to the client

Exceptions
IOException:
if an input or output exception occurred
printlnback to summary
public void println(double d) throws IOException

Writes a double value to the client, followed by a carriage return-line feed (CRLF).

Parameters
d:double

the double value to write to the client

Exceptions
IOException:
if an input or output exception occurred
setWriteListenerback to summary
public abstract void setWriteListener(WriteListener writeListener)

Instructs the ServletOutputStream to invoke the provided WriteListener when it is possible to write

Parameters
writeListener:WriteListener

the WriteListener that should be notified when it's possible to write

Exceptions
IllegalStateException:
if one of the following conditions is true
  • the associated request is neither upgraded nor the async started
  • setWriteListener is called more than once within the scope of the same request.
NullPointerException:
if writeListener is null
Since
Servlet 3.1
writeback to summary
public void write(ByteBuffer buffer) throws IOException

Writes from the given buffer to the output stream.

If the output steam is in non-blocking mode, before each invocation of this method isReady() must be called and must return true or the WriteListener#onWritePossible() call back must indicate that data may be written else an IllegalStateException must be thrown.

Otherwise, if this method is called when buffer has no data remaining, the method returns immediately and buffer is unchanged.

If the output stream is in non-blocking mode, neither the position, limit nor content of the buffer passed to this method may be modified until a subsequent call to isReady() returns true or the WriteListener#onWritePossible() call back indicates data may be written again. At this point the buffer's limit will be unchanged from the value when passed to this method and the position will be the same as the limit.

If the output stream is in blocking mode and buffer has space remaining, this method blocks until all the remaining data in the buffer has been written. When the method returns, and if data has been written, the buffer's limit will be unchanged from the value when passed to this method and the position will be the same as the limit.

Subclasses are strongly encouraged to override this method and provide a more efficient implementation.

Parameters
buffer:ByteBuffer

The buffer from which the data is written.

Exceptions
IOException:
If the output stream has been closed or if some other I/O error occurs.
IllegalStateException:
If the output stream is in non-blocking mode and this method is called without first calling isReady() and that method has returned true or WriteListener#onWritePossible() has not signalled that data may be written.
NullPointerException:
If buffer is null.
Since
Servlet 6.1