Package org.apache.commons.codec.binary

# Class BinaryCodec

java.lang.Object
org.apache.commons.codec.binary.BinaryCodec

All Implemented Interfaces:
  `BinaryDecoder`, `BinaryEncoder`, `Decoder`, `Encoder`

public class BinaryCodec extends Object implements BinaryDecoder, BinaryEncoder
Converts between byte arrays and strings of "0"s and "1"s.

This class is immutable and thread-safe.

TODO: may want to add more bit vector functions like and/or/xor/nand TODO: also might be good to generate boolean[] from byte[] et cetera.

Since:
  1.3

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BinaryCodec()`
  Constructs a new instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `byte[]`
  `decode(byte[] ascii)`
  Decodes a byte array where each byte represents an ASCII '0' or '1'.
  `Object`
  `decode(Object ascii)`
  Decodes a byte array where each byte represents an ASCII '0' or '1'.
  `byte[]`
  `encode(byte[] raw)`
  Converts an array of raw binary data into an array of ASCII 0 and 1 characters.
  `Object`
  `encode(Object raw)`
  Converts an array of raw binary data into an array of ASCII 0 and 1 chars.
  `static byte[]`
  `fromAscii(byte[] ascii)`
  Decodes a byte array where each byte represents an ASCII '0' or '1'.
  `static byte[]`
  `fromAscii(char[] ascii)`
  Decodes a char array where each char represents an ASCII '0' or '1'.
  `static byte[]`
  `toAsciiBytes(byte[] raw)`
  Converts an array of raw binary data into an array of ASCII 0 and 1 character bytes - each byte is a truncated char.
  `static char[]`
  `toAsciiChars(byte[] raw)`
  Converts an array of raw binary data into an array of ASCII 0 and 1 characters.
  `static String`
  `toAsciiString(byte[] raw)`
  Converts an array of raw binary data into a String of ASCII 0 and 1 characters.
  `byte[]`
  `toByteArray(String ascii)`
  Decodes a String where each char of the String represents an ASCII '0' or '1'.

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

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

- ## Constructor Details

  - ### BinaryCodec

    public BinaryCodec()
    Constructs a new instance.

- ## Method Details

  - ### fromAscii

    public static byte[] fromAscii(byte[] ascii)
    Decodes a byte array where each byte represents an ASCII '0' or '1'.
    Parameters:
      `ascii` - each byte represents an ASCII '0' or '1'
    Returns:
      the raw encoded binary where each bit corresponds to a byte in the byte array argument

  - ### fromAscii

    public static byte[] fromAscii(char[] ascii)
    Decodes a char array where each char represents an ASCII '0' or '1'.
    Parameters:
      `ascii` - each char represents an ASCII '0' or '1'
    Returns:
      the raw encoded binary where each bit corresponds to a char in the char array argument

  - ### toAsciiBytes

    public static byte[] toAsciiBytes(byte[] raw)
    Converts an array of raw binary data into an array of ASCII 0 and 1 character bytes - each byte is a truncated char.
    Parameters:
      `raw` - the raw binary data to convert
    Returns:
      an array of 0 and 1 character bytes for each bit of the argument
    See Also:
      - `BinaryEncoder.encode(byte[])`

  - ### toAsciiChars

    public static char[] toAsciiChars(byte[] raw)
    Converts an array of raw binary data into an array of ASCII 0 and 1 characters.
    Parameters:
      `raw` - the raw binary data to convert
    Returns:
      an array of 0 and 1 characters for each bit of the argument
    See Also:
      - `BinaryEncoder.encode(byte[])`

  - ### toAsciiString

    public static String toAsciiString(byte[] raw)
    Converts an array of raw binary data into a String of ASCII 0 and 1 characters.
    Parameters:
      `raw` - the raw binary data to convert
    Returns:
      a String of 0 and 1 characters representing the binary data
    See Also:
      - `BinaryEncoder.encode(byte[])`

  - ### decode

    public byte[] decode(byte[] ascii)
    Decodes a byte array where each byte represents an ASCII '0' or '1'.
    Specified by:
      `decode` in interface `BinaryDecoder`
    Parameters:
      `ascii` - each byte represents an ASCII '0' or '1'
    Returns:
      the raw encoded binary where each bit corresponds to a byte in the byte array argument
    See Also:
      - `Decoder.decode(Object)`

  - ### decode

    public Object decode(Object ascii) throws DecoderException
    Decodes a byte array where each byte represents an ASCII '0' or '1'.
    Specified by:
      `decode` in interface `Decoder`
    Parameters:
      `ascii` - each byte represents an ASCII '0' or '1'
    Returns:
      the raw encoded binary where each bit corresponds to a byte in the byte array argument
    Throws:
      `DecoderException` - if argument is not a byte[], char[] or String
    See Also:
      - `Decoder.decode(Object)`

  - ### encode

    public byte[] encode(byte[] raw)
    Converts an array of raw binary data into an array of ASCII 0 and 1 characters.
    Specified by:
      `encode` in interface `BinaryEncoder`
    Parameters:
      `raw` - the raw binary data to convert
    Returns:
      0 and 1 ASCII character bytes one for each bit of the argument
    See Also:
      - `BinaryEncoder.encode(byte[])`

  - ### encode

    public Object encode(Object raw) throws EncoderException
    Converts an array of raw binary data into an array of ASCII 0 and 1 chars.
    Specified by:
      `encode` in interface `Encoder`
    Parameters:
      `raw` - the raw binary data to convert
    Returns:
      0 and 1 ASCII character chars one for each bit of the argument
    Throws:
      `EncoderException` - if the argument is not a byte[]
    See Also:
      - `Encoder.encode(Object)`

  - ### toByteArray

    public byte[] toByteArray(String ascii)
    Decodes a String where each char of the String represents an ASCII '0' or '1'.
    Parameters:
      `ascii` - String of '0' and '1' characters
    Returns:
      the raw encoded binary where each bit corresponds to a byte in the byte array argument
    See Also:
      - `Decoder.decode(Object)`