de.caff.util

## Class Base64.InputStream

- java.lang.Object
- - java.io.InputStream
  - - java.io.FilterInputStream
    - - de.caff.util.Base64.InputStream

- All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable
  Enclosing class:
    Base64

      public static class Base64.InputStream
      extends java.io.FilterInputStream

  A `Base64.InputStream` will read data from another `java.io.InputStream`, given in the constructor, and encode/decode to/from Base64 notation on the fly.
  Since:
    1.3
  See Also:
    `Base64`

- - ### Field Summary

    - ### Fields inherited from class java.io.FilterInputStream

      `in`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `InputStream(java.io.InputStream in)` Constructs a `Base64.InputStream` in DECODE mode.
    `InputStream(java.io.InputStream in, int options)` Constructs a `Base64.InputStream` in either ENCODE or DECODE mode.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `read()` Reads enough of the input stream to convert to/from Base64 and returns the next byte.
    `int` | `read(byte[] dest, int off, int len)` Calls `read()` repeatedly until the end of stream is reached or len bytes are read.

    - ### Methods inherited from class java.io.FilterInputStream

      `available, close, mark, markSupported, read, reset, skip`

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

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

- - ### Constructor Detail

    - #### InputStream

          public InputStream(java.io.InputStream in)

      Constructs a `Base64.InputStream` in DECODE mode.
      Parameters:
        `in` - the `java.io.InputStream` from which to read data.
      Since:
        1.3

    - #### InputStream

          public InputStream(java.io.InputStream in,
                             int options)

      Constructs a `Base64.InputStream` in either ENCODE or DECODE mode.

      Valid options:

             ENCODE or DECODE: Encode or Decode as data is read.
             DO_BREAK_LINES: break lines at 76 characters
               (only meaningful when encoding)

      Example: `new Base64.InputStream( in, Base64.DECODE )`

      Parameters:
        `in` - the `java.io.InputStream` from which to read data.
        `options` - Specified options
      Since:
        2.0
      See Also:
        `Base64.ENCODE`, `Base64.DECODE`, `Base64.DO_BREAK_LINES`

  - ### Method Detail

    - #### read

          public int read()
                   throws java.io.IOException

      Reads enough of the input stream to convert to/from Base64 and returns the next byte.
      Overrides:
        `read` in class `java.io.FilterInputStream`
      Returns:
        next byte
      Throws:
        `java.io.IOException`
      Since:
        1.3

    - #### read

          public int read(@NotNull
                          byte[] dest,
                          int off,
                          int len)
                   throws java.io.IOException

      Calls `read()` repeatedly until the end of stream is reached or len bytes are read. Returns number of bytes read into array or -1 if end of stream is encountered.
      Overrides:
        `read` in class `java.io.FilterInputStream`
      Parameters:
        `dest` - array to hold values
        `off` - offset for array
        `len` - max number of bytes to read into array
      Returns:
        bytes read into array or -1 if end of stream is encountered.
      Throws:
        `java.io.IOException`
      Since:
        1.3