Class ArchiveUtils

java.lang.Object
org.apache.commons.compress.utils.ArchiveUtils

public class ArchiveUtils extends Object
Generic Archive utilities
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    isArrayZero(byte[] a, int size)
    Returns true if the first N bytes of an array are all zero
    static boolean
    isEqual(byte[] buffer1, byte[] buffer2)
    static boolean
    isEqual(byte[] buffer1, byte[] buffer2, boolean ignoreTrailingNulls)
    Compare byte buffers, optionally ignoring trailing nulls
    static boolean
    isEqual(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2, int length2)
    Compare byte buffers
    static boolean
    isEqual(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2, int length2, boolean ignoreTrailingNulls)
    Compare byte buffers, optionally ignoring trailing nulls
    static boolean
    isEqualWithNull(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2, int length2)
    Compare byte buffers, ignoring trailing nulls
    static boolean
    matchAsciiBuffer(String expected, byte[] buffer)
    Check if buffer contents matches ASCII String.
    static boolean
    matchAsciiBuffer(String expected, byte[] buffer, int offset, int length)
    Check if buffer contents matches ASCII String.
    static String
    Returns a "sanitized" version of the string given as arguments, where sanitized means non-printable characters have been replaced with a question mark and the outcome is not longer than 255 chars.
    static byte[]
    toAsciiBytes(String inputString)
    Convert a string to ASCII bytes.
    static String
    toAsciiString(byte[] inputBytes)
    Convert an input byte array to a String using the ASCII character set.
    static String
    toAsciiString(byte[] inputBytes, int offset, int length)
    Convert an input byte array to a String using the ASCII character set.
    static String
    Generates a string containing the name, isDirectory setting and size of an entry.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • isArrayZero

      public static boolean isArrayZero(byte[] a, int size)
      Returns true if the first N bytes of an array are all zero
      Parameters:
      a - The array to check
      size - The number of characters to check (not the size of the array)
      Returns:
      true if the first N bytes are zero
    • isEqual

      @Deprecated public static boolean isEqual(byte[] buffer1, byte[] buffer2)
      Compare byte buffers
      Parameters:
      buffer1 - the first buffer
      buffer2 - the second buffer
      Returns:
      true if buffer1 and buffer2 have same contents
    • isEqual

      public static boolean isEqual(byte[] buffer1, byte[] buffer2, boolean ignoreTrailingNulls)
      Compare byte buffers, optionally ignoring trailing nulls
      Parameters:
      buffer1 - the first buffer
      buffer2 - the second buffer
      ignoreTrailingNulls - whether to ignore trailing nulls
      Returns:
      true if buffer1 and buffer2 have same contents
    • isEqual

      public static boolean isEqual(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2, int length2)
      Compare byte buffers
      Parameters:
      buffer1 - the first buffer
      offset1 - the first offset
      length1 - the first length
      buffer2 - the second buffer
      offset2 - the second offset
      length2 - the second length
      Returns:
      true if buffer1 and buffer2 have same contents
    • isEqual

      public static boolean isEqual(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2, int length2, boolean ignoreTrailingNulls)
      Compare byte buffers, optionally ignoring trailing nulls
      Parameters:
      buffer1 - first buffer
      offset1 - first offset
      length1 - first length
      buffer2 - second buffer
      offset2 - second offset
      length2 - second length
      ignoreTrailingNulls - whether to ignore trailing nulls
      Returns:
      true if buffer1 and buffer2 have same contents, having regard to trailing nulls
    • isEqualWithNull

      public static boolean isEqualWithNull(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2, int length2)
      Compare byte buffers, ignoring trailing nulls
      Parameters:
      buffer1 - the first buffer
      offset1 - the first offset
      length1 - the first length
      buffer2 - the second buffer
      offset2 - the second offset
      length2 - the second length
      Returns:
      true if buffer1 and buffer2 have same contents, having regard to trailing nulls
    • matchAsciiBuffer

      public static boolean matchAsciiBuffer(String expected, byte[] buffer)
      Check if buffer contents matches ASCII String.
      Parameters:
      expected - the expected string
      buffer - the buffer
      Returns:
      true if buffer is the same as the expected string
    • matchAsciiBuffer

      public static boolean matchAsciiBuffer(String expected, byte[] buffer, int offset, int length)
      Check if buffer contents matches ASCII String.
      Parameters:
      expected - expected string
      buffer - the buffer
      offset - offset to read from
      length - length of the buffer
      Returns:
      true if buffer is the same as the expected string
    • sanitize

      public static String sanitize(String s)
      Returns a "sanitized" version of the string given as arguments, where sanitized means non-printable characters have been replaced with a question mark and the outcome is not longer than 255 chars.

      This method is used to clean up file names when they are used in exception messages as they may end up in log files or as console output and may have been read from a corrupted input.

      Parameters:
      s - the string to sanitize
      Returns:
      a sanitized version of the argument
      Since:
      1.12
    • toAsciiBytes

      public static byte[] toAsciiBytes(String inputString)
      Convert a string to ASCII bytes. Used for comparing "magic" strings which need to be independent of the default Locale.
      Parameters:
      inputString - string to convert
      Returns:
      the bytes
    • toAsciiString

      public static String toAsciiString(byte[] inputBytes)
      Convert an input byte array to a String using the ASCII character set.
      Parameters:
      inputBytes - bytes to convert
      Returns:
      the bytes, interpreted as an ASCII string
    • toAsciiString

      public static String toAsciiString(byte[] inputBytes, int offset, int length)
      Convert an input byte array to a String using the ASCII character set.
      Parameters:
      inputBytes - input byte array
      offset - offset within array
      length - length of array
      Returns:
      the bytes, interpreted as an ASCII string
    • toString

      public static String toString(ArchiveEntry entry)
      Generates a string containing the name, isDirectory setting and size of an entry.

      For example:

       -    2000 main.c
       d     100 testfiles
       
      Parameters:
      entry - the entry
      Returns:
      the representation of the entry