Package com.sun.mail.util

# Class UUDecoderStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
com.sun.mail.util.UUDecoderStream

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`

public class UUDecoderStream extends FilterInputStream
This class implements a UUDecoder. It is implemented as a FilterInputStream, so one can just wrap this class around any input stream and read bytes from this filter. The decoding is done as the bytes are read out.

Author:
  John Mani, Bill Shannon

## Field Summary

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

`in`

## Constructor Summary

Constructors
Constructor
Description
`UUDecoderStream(InputStream in)`
Create a UUdecoder that decodes the specified input stream.
`UUDecoderStream(InputStream in, boolean ignoreErrors, boolean ignoreMissingBeginEnd)`
Create a UUdecoder that decodes the specified input stream.

## Method Summary

Modifier and Type
Method
Description
`int`
`available()`
`int`
`getMode()`
Get the "mode" field from the prefix.
`String`
`getName()`
Get the "name" field from the prefix.
`boolean`
`markSupported()`
`int`
`read()`
Read the next decoded byte from this input stream.
`int`
`read(byte[] buf, int off, int len)`

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

`close, mark, 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

### UUDecoderStream

public UUDecoderStream(InputStream in)
Create a UUdecoder that decodes the specified input stream. The System property `mail.mime.uudecode.ignoreerrors` controls whether errors in the encoded data cause an exception or are ignored. The default is false (errors cause exception). The System property `mail.mime.uudecode.ignoremissingbeginend` controls whether a missing begin or end line cause an exception or are ignored. The default is false (errors cause exception).

Parameters:
  `in` - the input stream

### UUDecoderStream

public UUDecoderStream(InputStream in, boolean ignoreErrors, boolean ignoreMissingBeginEnd)
Create a UUdecoder that decodes the specified input stream.

Parameters:
  `in` - the input stream
  `ignoreErrors` - ignore errors?
  `ignoreMissingBeginEnd` - ignore missing begin or end?

## Method Details

### read

public int read() throws IOException
Read the next decoded byte from this input stream. The byte is returned as an `int` in the range `0` to `255`. If no byte is available because the end of the stream has been reached, the value `-1` is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.

Overrides:
  `read` in class `FilterInputStream`
Returns:
  next byte of data, or `-1` if the end of stream is reached.
Throws:
  `IOException` - if an I/O error occurs.
See Also:
  - `FilterInputStream.in`

### read

public int read(byte[] buf, int off, int len) throws IOException

Overrides:
  `read` in class `FilterInputStream`
Throws:
  `IOException`

### markSupported

public boolean markSupported()

Overrides:
  `markSupported` in class `FilterInputStream`

### available

public int available() throws IOException

Overrides:
  `available` in class `FilterInputStream`
Throws:
  `IOException`

### getName

public String getName() throws IOException
Get the "name" field from the prefix. This is meant to be the pathname of the decoded file

Returns:
  name of decoded file
Throws:
  `IOException` - if an I/O error occurs.

### getMode

public int getMode() throws IOException
Get the "mode" field from the prefix. This is the permission mode of the source file.

Returns:
  permission mode of source file
Throws:
  `IOException` - if an I/O error occurs.