Appendable (Java Platform SE 8 )
Keywords: java.lang.Appendable interface
Date: 2026-01-21

compact1, compact2, compact3
java.lang

## Interface Appendable

- All Known Implementing Classes:
    BufferedWriter, CharArrayWriter, CharBuffer, FileWriter, FilterWriter, LogStream, OutputStreamWriter, PipedWriter, PrintStream, PrintWriter, StringBuffer, StringBuilder, StringWriter, Writer

      public interface Appendable

  An object to which `char` sequences and values can be appended. The `Appendable` interface must be implemented by any class whose instances are intended to receive formatted output from a `Formatter`.

  The characters to be appended should be valid Unicode characters as described in Unicode Character Representation. Note that supplementary characters may be composed of multiple 16-bit `char` values.

  Appendables are not necessarily safe for multithreaded access. Thread safety is the responsibility of classes that extend and implement this interface.

  Since this interface may be implemented by existing classes with different styles of error handling there is no guarantee that errors will be propagated to the invoker.

  Since:
    1.5

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Appendable` | `append(char c)` Appends the specified character to this `Appendable`.
    `Appendable` | `append(CharSequence csq)` Appends the specified character sequence to this `Appendable`.
    `Appendable` | `append(CharSequence csq, int start, int end)` Appends a subsequence of the specified character sequence to this `Appendable`.

- - ### Method Detail

    - #### append

          Appendable append(CharSequence csq)
                     throws IOException

      Appends the specified character sequence to this `Appendable`.

      Depending on which class implements the character sequence `csq`, the entire sequence may not be appended. For instance, if `csq` is a `CharBuffer` then the subsequence to append is defined by the buffer's position and limit.

      Parameters:
        `csq` - The character sequence to append. If `csq` is `null`, then the four characters `"null"` are appended to this Appendable.
      Returns:
        A reference to this `Appendable`
      Throws:
        `IOException` - If an I/O error occurs

    - #### append

          Appendable append(CharSequence csq,
                            int start,
                            int end)
                     throws IOException

      Appends a subsequence of the specified character sequence to this `Appendable`.

      An invocation of this method of the form `out.append(csq, start, end)` when `csq` is not `null`, behaves in exactly the same way as the invocation

               out.append(csq.subSequence(start, end))

      Parameters:
        `csq` - The character sequence from which a subsequence will be appended. If `csq` is `null`, then characters will be appended as if `csq` contained the four characters `"null"`.
        `start` - The index of the first character in the subsequence
        `end` - The index of the character following the last character in the subsequence
      Returns:
        A reference to this `Appendable`
      Throws:
        `IndexOutOfBoundsException` - If `start` or `end` are negative, `start` is greater than `end`, or `end` is greater than `csq.length()`
        `IOException` - If an I/O error occurs

    - #### append

          Appendable append(char c)
                     throws IOException

      Appends the specified character to this `Appendable`.
      Parameters:
        `c` - The character to append
      Returns:
        A reference to this `Appendable`
      Throws:
        `IOException` - If an I/O error occurs

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.