java.lang.Object
org.apache.commons.compress.archivers.zip.ZipLong
All Implemented Interfaces:
Serializable, Cloneable

public final class ZipLong extends Object implements Cloneable, Serializable
Utility class that represents a four byte integer with conversion rules for the little-endian byte order of ZIP files.
See Also:
This class is immutable
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final ZipLong
    Archive extra data record signature.
    static final ZipLong
    Central File Header Signature
    static final ZipLong
    Data Descriptor signature.
    static final ZipLong
    Local File Header Signature
    static final ZipLong
    Marks ZIP archives that were supposed to be split or spanned but only needed a single segment in then end (so are actually neither split nor spanned).
  • Constructor Summary

    Constructors
    Constructor
    Description
    ZipLong(byte[] bytes)
    Constructs a new instance from bytes.
    ZipLong(byte[] bytes, int offset)
    Creates instance from the four bytes starting at offset.
    ZipLong(int value)
    create instance from a Java int.
    ZipLong(long value)
    Creates instance from a number.
  • Method Summary

    Modifier and Type
    Method
    Description
     
    boolean
    Override to make two instances with same value equal.
    byte[]
    Gets value as four bytes in big-endian byte order.
    static byte[]
    getBytes(long value)
    Gets value as four bytes in big-endian byte order.
    int
    Gets value as a (signed) Java int
    long
    Gets value as Java long.
    static long
    getValue(byte[] bytes)
    Helper method to get the value as a Java long from a four-byte array
    static long
    getValue(byte[] bytes, int offset)
    Helper method to get the value as a Java long from four bytes starting at given array offset
    int
    Override to make two instances with same value equal.
    void
    putLong(byte[] buf, int offset)
     
    static void
    putLong(long value, byte[] buf, int offset)
    put the value as four bytes in big-endian byte order.
     

    Methods inherited from class java.lang.Object

    finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • CFH_SIG

      public static final ZipLong CFH_SIG
      Central File Header Signature
    • LFH_SIG

      public static final ZipLong LFH_SIG
      Local File Header Signature
    • DD_SIG

      public static final ZipLong DD_SIG
      Data Descriptor signature.

      Actually, PKWARE uses this as marker for split/spanned archives and other archivers have started to use it as Data Descriptor signature (as well).

      Since:
      1.1
    • SINGLE_SEGMENT_SPLIT_MARKER

      public static final ZipLong SINGLE_SEGMENT_SPLIT_MARKER
      Marks ZIP archives that were supposed to be split or spanned but only needed a single segment in then end (so are actually neither split nor spanned).

      This is the "PK00" prefix found in some archives.

      Since:
      1.5
    • AED_SIG

      public static final ZipLong AED_SIG
      Archive extra data record signature.
      Since:
      1.5
  • Constructor Details

    • ZipLong

      public ZipLong(byte[] bytes)
      Constructs a new instance from bytes.
      Parameters:
      bytes - the bytes to store as a ZipLong
    • ZipLong

      public ZipLong(byte[] bytes, int offset)
      Creates instance from the four bytes starting at offset.
      Parameters:
      bytes - the bytes to store as a ZipLong
      offset - the offset to start
    • ZipLong

      public ZipLong(int value)
      create instance from a Java int.
      Parameters:
      value - the int to store as a ZipLong
      Since:
      1.15
    • ZipLong

      public ZipLong(long value)
      Creates instance from a number.
      Parameters:
      value - the long to store as a ZipLong
  • Method Details

    • getBytes

      public static byte[] getBytes(long value)
      Gets value as four bytes in big-endian byte order.
      Parameters:
      value - the value to convert
      Returns:
      value as four bytes in big-endian byte order
    • getValue

      public static long getValue(byte[] bytes)
      Helper method to get the value as a Java long from a four-byte array
      Parameters:
      bytes - the array of bytes
      Returns:
      the corresponding Java long value
    • getValue

      public static long getValue(byte[] bytes, int offset)
      Helper method to get the value as a Java long from four bytes starting at given array offset
      Parameters:
      bytes - the array of bytes
      offset - the offset to start
      Returns:
      the corresponding Java long value
    • putLong

      public static void putLong(long value, byte[] buf, int offset)
      put the value as four bytes in big-endian byte order.
      Parameters:
      value - the Java long to convert to bytes
      buf - the output buffer
      offset - The offset within the output buffer of the first byte to be written. must be non-negative and no larger than buf.length-4
    • clone

      public Object clone()
      Overrides:
      clone in class Object
    • equals

      public boolean equals(Object o)
      Override to make two instances with same value equal.
      Overrides:
      equals in class Object
      Parameters:
      o - an object to compare
      Returns:
      true if the objects are equal
    • getBytes

      public byte[] getBytes()
      Gets value as four bytes in big-endian byte order.
      Returns:
      value as four bytes in big-endian order
    • getIntValue

      public int getIntValue()
      Gets value as a (signed) Java int
      Returns:
      value as int
      Since:
      1.15
    • getValue

      public long getValue()
      Gets value as Java long.
      Returns:
      value as a long
    • hashCode

      public int hashCode()
      Override to make two instances with same value equal.
      Overrides:
      hashCode in class Object
      Returns:
      the value stored in the ZipLong
    • putLong

      public void putLong(byte[] buf, int offset)
    • toString

      public String toString()
      Overrides:
      toString in class Object