Package jakarta.servlet

## Class ServletOutputStream

- java.lang.Object
- - java.io.OutputStream
  - - jakarta.servlet.ServletOutputStream

All Implemented Interfaces:
  `java.io.Closeable`, `java.io.Flushable`, `java.lang.AutoCloseable`

    public abstract class ServletOutputStream
    extends java.io.OutputStream

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.

See Also:
  `ServletResponse`

### Constructor Summary

Constructors
`protected` `ServletOutputStream()` Does nothing, because this is an abstract class.

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`abstract boolean` `isReady()` Checks if a non-blocking write will succeed.
`void` `print​(boolean b)` Writes a `boolean` value to the client, with no carriage return-line feed (CRLF) character at the end.
`void` `print​(char c)` Writes a character to the client, with no carriage return-line feed (CRLF) at the end.
`void` `print​(double d)` Writes a `double` value to the client, with no carriage return-line feed (CRLF) at the end.
`void` `print​(float f)` Writes a `float` value to the client, with no carriage return-line feed (CRLF) at the end.
`void` `print​(int i)` Writes an int to the client, with no carriage return-line feed (CRLF) at the end.
`void` `print​(long l)` Writes a `long` value to the client, with no carriage return-line feed (CRLF) at the end.
`void` `print​(java.lang.String s)` Writes a `String` to the client, without a carriage return-line feed (CRLF) character at the end.
`void` `println()` Writes a carriage return-line feed (CRLF) to the client.
`void` `println​(boolean b)` Writes a `boolean` value to the client, followed by a carriage return-line feed (CRLF).
`void` `println​(char c)` Writes a character to the client, followed by a carriage return-line feed (CRLF).
`void` `println​(double d)` Writes a `double` value to the client, followed by a carriage return-line feed (CRLF).
`void` `println​(float f)` Writes a `float` value to the client, followed by a carriage return-line feed (CRLF).
`void` `println​(int i)` Writes an int to the client, followed by a carriage return-line feed (CRLF) character.
`void` `println​(long l)` Writes a `long` value to the client, followed by a carriage return-line feed (CRLF).
`void` `println​(java.lang.String s)` Writes a `String` to the client, followed by a carriage return-line feed (CRLF).
`abstract void` `setWriteListener​(WriteListener listener)` Sets the `WriteListener` for this `ServletOutputStream` and thereby switches to non-blocking IO.

### Methods inherited from class java.io.OutputStream

`close, flush, nullOutputStream, write, write, write`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ServletOutputStream

    protected ServletOutputStream()

Does nothing, because this is an abstract class.

### Method Detail

#### print

    public void print​(java.lang.String s)
               throws java.io.IOException

Writes a `String` to the client, without a carriage return-line feed (CRLF) character at the end.

Parameters:
  `s` - the `String` to send to the client
Throws:
  `java.io.IOException` - if an input or output exception occurred

#### print

    public void print​(boolean b)
               throws java.io.IOException

Writes a `boolean` value to the client, with no carriage return-line feed (CRLF) character at the end.

Parameters:
  `b` - the `boolean` value to send to the client
Throws:
  `java.io.IOException` - if an input or output exception occurred

#### print

    public void print​(char c)
               throws java.io.IOException

Writes a character to the client, with no carriage return-line feed (CRLF) at the end.

Parameters:
  `c` - the character to send to the client
Throws:
  `java.io.IOException` - if an input or output exception occurred

#### print

    public void print​(int i)
               throws java.io.IOException

Writes an int to the client, with no carriage return-line feed (CRLF) at the end.

Parameters:
  `i` - the int to send to the client
Throws:
  `java.io.IOException` - if an input or output exception occurred

#### print

    public void print​(long l)
               throws java.io.IOException

Writes a `long` value to the client, with no carriage return-line feed (CRLF) at the end.

Parameters:
  `l` - the `long` value to send to the client
Throws:
  `java.io.IOException` - if an input or output exception occurred

#### print

    public void print​(float f)
               throws java.io.IOException

Writes a `float` value to the client, with no carriage return-line feed (CRLF) at the end.

Parameters:
  `f` - the `float` value to send to the client
Throws:
  `java.io.IOException` - if an input or output exception occurred

#### print

    public void print​(double d)
               throws java.io.IOException

Writes a `double` value to the client, with no carriage return-line feed (CRLF) at the end.

Parameters:
  `d` - the `double` value to send to the client
Throws:
  `java.io.IOException` - if an input or output exception occurred

#### println

    public void println()
                 throws java.io.IOException

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

Throws:
  `java.io.IOException` - if an input or output exception occurred

#### println

    public void println​(java.lang.String s)
                 throws java.io.IOException

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

Parameters:
  `s` - the `String` to write to the client
Throws:
  `java.io.IOException` - if an input or output exception occurred

#### println

    public void println​(boolean b)
                 throws java.io.IOException

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

Parameters:
  `b` - the `boolean` value to write to the client
Throws:
  `java.io.IOException` - if an input or output exception occurred

#### println

    public void println​(char c)
                 throws java.io.IOException

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

Parameters:
  `c` - the character to write to the client
Throws:
  `java.io.IOException` - if an input or output exception occurred

#### println

    public void println​(int i)
                 throws java.io.IOException

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

Parameters:
  `i` - the int to write to the client
Throws:
  `java.io.IOException` - if an input or output exception occurred

#### println

    public void println​(long l)
                 throws java.io.IOException

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

Parameters:
  `l` - the `long` value to write to the client
Throws:
  `java.io.IOException` - if an input or output exception occurred

#### println

    public void println​(float f)
                 throws java.io.IOException

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

Parameters:
  `f` - the `float` value to write to the client
Throws:
  `java.io.IOException` - if an input or output exception occurred

#### println

    public void println​(double d)
                 throws java.io.IOException

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

Parameters:
  `d` - the `double` value to write to the client
Throws:
  `java.io.IOException` - if an input or output exception occurred

#### isReady

    public abstract boolean isReady()

Checks if a non-blocking write will succeed. If this returns `false`, it will cause a callback to `WriteListener.onWritePossible()` when the buffer has emptied. If this method returns `false` no further data must be written until the container calls `WriteListener.onWritePossible()`.

Returns:
  `true` if data can be written, else `false`
Since:
  Servlet 3.1

#### setWriteListener

    public abstract void setWriteListener​(WriteListener listener)

Sets the `WriteListener` for this `ServletOutputStream` and thereby switches to non-blocking IO. It is only valid to switch to non-blocking IO within async processing or HTTP upgrade processing.

Parameters:
  `listener` - The non-blocking IO write listener
Throws:
  `java.lang.IllegalStateException` - If this method is called if neither async nor HTTP upgrade is in progress or if the `WriteListener` has already been set
  `java.lang.NullPointerException` - If listener is null
Since:
  Servlet 3.1