org.jivesoftware.spark.util
Class Base64.InputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.FilterInputStream
          extended by org.jivesoftware.spark.util.Base64.InputStream
All Implemented Interfaces:
java.io.Closeable
Enclosing class:
Base64

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

A InputStream will read data from another InputStream, given in the constructor, and encode/decode to/from Base64 notation on the fly.

Since:
1.3
See Also:
Base64, FilterInputStream

Field Summary
 
Fields inherited from class java.io.FilterInputStream
in
 
Constructor Summary
Base64.InputStream(java.io.InputStream in)
          Constructs a InputStream in DECODE mode.
Base64.InputStream(java.io.InputStream in, int options)
          Constructs a InputStream in either ENCODE or DECODE mode.
 
Method Summary
 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

Base64.InputStream

public Base64.InputStream(java.io.InputStream in)
Constructs a InputStream in DECODE mode.

Parameters:
in - the InputStream from which to read data.
Since:
1.3

Base64.InputStream

public Base64.InputStream(java.io.InputStream in,
                          int options)
Constructs a InputStream in either ENCODE or DECODE mode.

Valid options:

   ENCODE or DECODE: Encode or Decode as data is read.
   DONT_BREAK_LINES: don't break lines at 76 characters
     (only meaningful when encoding)
     Note: Technically, this makes your encoding non-compliant.
 

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

Parameters:
in - the InputStream from which to read data.
options - Specified options
Since:
2.0
See Also:
Base64.ENCODE, Base64.DECODE, Base64.DONT_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(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