Package 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 inherited from class java.io.FilterInputStream

`in`

## Constructor Summary

Constructors
Constructor
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

Modifier and Type
Method
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.io.InputStream

`nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo`

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

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

## Constructor Details

### 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 Details

### 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