org.apache.commons.io

## Class ByteOrderMark

- java.lang.Object
- - org.apache.commons.io.ByteOrderMark

- All Implemented Interfaces:
    Serializable

      public class ByteOrderMark
      extends Object
      implements Serializable

  Byte Order Mark (BOM) representation. See `BOMInputStream`.

  We define the follow BOM constants:

  - `UTF_16BE`
  - `UTF_16LE`
  - `UTF_32BE`
  - `UTF_32LE`
  - `UTF_8`

  ## Deprecating Serialization

  Serialization is deprecated and will be removed in 3.0.

  Since:
    2.0
  See Also:
    `BOMInputStream`, Wikipedia: Byte Order Mark, W3C: Autodetection of Character Encodings (Non-Normative), Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static ByteOrderMark` | `UTF_16BE` UTF-16BE BOM (Big-Endian).
    `static ByteOrderMark` | `UTF_16LE` UTF-16LE BOM (Little-Endian).
    `static ByteOrderMark` | `UTF_32BE` UTF-32BE BOM (Big-Endian).
    `static ByteOrderMark` | `UTF_32LE` UTF-32LE BOM (Little-Endian).
    `static ByteOrderMark` | `UTF_8` UTF-8 BOM.
    `static char` | `UTF_BOM` Unicode BOM character; external form depends on the encoding.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ByteOrderMark(String charsetName, int... bytes)` Constructs a new instance.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(Object obj)` Indicates if this instance's bytes equals another.
    `int` | `get(int pos)` Gets the byte at the specified position.
    `byte[]` | `getBytes()` Gets a copy of the BOM's bytes.
    `String` | `getCharsetName()` Gets the name of the `Charset` the BOM represents.
    `int` | `hashCode()` Computes the hash code for this BOM.
    `int` | `length()` Gets the length of the BOM's bytes.
    `String` | `toString()` Converts this instance to a String representation of the BOM.

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### UTF_8

          public static final ByteOrderMark UTF_8

      UTF-8 BOM.

      This BOM is:

           0xEF 0xBB 0xBF

    - #### UTF_16BE

          public static final ByteOrderMark UTF_16BE

      UTF-16BE BOM (Big-Endian).

      This BOM is:

           0xFE 0xFF

    - #### UTF_16LE

          public static final ByteOrderMark UTF_16LE

      UTF-16LE BOM (Little-Endian).

      This BOM is:

           0xFF 0xFE

    - #### UTF_32BE

          public static final ByteOrderMark UTF_32BE

      UTF-32BE BOM (Big-Endian).

      This BOM is:

           0x00 0x00 0xFE 0xFF

      Since:
        2.2

    - #### UTF_32LE

          public static final ByteOrderMark UTF_32LE

      UTF-32LE BOM (Little-Endian).

      This BOM is:

           0xFF 0xFE 0x00 0x00

      Since:
        2.2

    - #### UTF_BOM

          public static final char UTF_BOM

      Unicode BOM character; external form depends on the encoding.
      Since:
        2.5
      See Also:
        Byte Order Mark (BOM) FAQ, Constant Field Values

  - ### Constructor Detail

    - #### ByteOrderMark

          public ByteOrderMark(String charsetName,
                               int... bytes)

      Constructs a new instance.
      Parameters:
        `charsetName` - The name of the charset the BOM represents
        `bytes` - The BOM's bytes
      Throws:
        `IllegalArgumentException` - if the charsetName is zero length
        `IllegalArgumentException` - if the bytes are zero length

  - ### Method Detail

    - #### equals

          public boolean equals(Object obj)

      Indicates if this instance's bytes equals another.
      Overrides:
        `equals` in class `Object`
      Parameters:
        `obj` - The object to compare to
      Returns:
        true if the bom's bytes are equal, otherwise false

    - #### get

          public int get(int pos)

      Gets the byte at the specified position.
      Parameters:
        `pos` - The position
      Returns:
        The specified byte

    - #### getBytes

          public byte[] getBytes()

      Gets a copy of the BOM's bytes.
      Returns:
        a copy of the BOM's bytes

    - #### getCharsetName

          public String getCharsetName()

      Gets the name of the `Charset` the BOM represents.
      Returns:
        the character set name

    - #### hashCode

          public int hashCode()

      Computes the hash code for this BOM.
      Overrides:
        `hashCode` in class `Object`
      Returns:
        the hash code for this BOM.
      See Also:
        `Object.hashCode()`

    - #### length

          public int length()

      Gets the length of the BOM's bytes.
      Returns:
        the length of the BOM's bytes

    - #### toString

          public String toString()

      Converts this instance to a String representation of the BOM.
      Overrides:
        `toString` in class `Object`
      Returns:
        the length of the BOM's bytes

Copyright © 2002–2023 The Apache Software Foundation. All rights reserved.