org.apache.calcite.avatica.util

## Class Base64.InputStream

- java.lang.Object
- - java.io.InputStream
  - - java.io.FilterInputStream
    - - org.apache.calcite.avatica.util.Base64.InputStream

All Implemented Interfaces:
  Closeable, AutoCloseable

Enclosing class:
  Base64

    public static class Base64.InputStream
    extends 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
`private boolean` `breakLines`
`private byte[]` `buffer`
`private int` `bufferLength`
`private byte[]` `decodabet`
`private boolean` `encode`
`private int` `lineLength`
`private int` `numSigBytes`
`private int` `options`
`private int` `position`

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

`in`

### Constructor Summary

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

### Method Summary

All Methods Instance Methods Concrete Methods
`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`

### Field Detail

#### encode

    private boolean encode

#### position

    private int position

#### buffer

    private byte[] buffer

#### bufferLength

    private int bufferLength

#### numSigBytes

    private int numSigBytes

#### lineLength

    private int lineLength

#### breakLines

    private boolean breakLines

#### options

    private int options

#### decodabet

    private byte[] decodabet

### Constructor Detail

#### InputStream

    public InputStream(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(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 IOException

Reads enough of the input stream to convert to/from Base64 and returns the next byte.

Overrides:
  `read` in class `FilterInputStream`
Returns:
  next byte
Throws:
  `IOException`
Since:
  1.3

#### read

    public int read(byte[] dest,
                    int off,
                    int len)
             throws 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 `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:
  `IOException`
Since:
  1.3