Class ZipUtil


  • public abstract class ZipUtil
    extends java.lang.Object
    Utility class for handling DOS and Java time conversions.
    • Constructor Summary

      Constructors 
      Constructor Description
      ZipUtil()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static long adjustToLong​(int i)
      Assumes a negative integer really is a positive integer that has wrapped around and re-creates the original value.
      static long dosToJavaTime​(long dosTime)
      Converts DOS time to Java time (number of milliseconds since epoch).
      static java.util.Date fromDosTime​(ZipLong zipDosTime)
      Convert a DOS date/time field to a Date object.
      static byte[] reverse​(byte[] array)
      Reverses a byte[] array.
      static int signedByteToUnsignedInt​(byte b)
      Converts a signed byte into an unsigned integer representation (e.g., -1 becomes 255).
      static byte[] toDosTime​(long t)
      Convert a Date object to a DOS date/time field.
      static void toDosTime​(long t, byte[] buf, int offset)
      Convert a Date object to a DOS date/time field.
      static ZipLong toDosTime​(java.util.Date time)
      Convert a Date object to a DOS date/time field.
      static byte unsignedIntToSignedByte​(int i)
      Converts an unsigned integer to a signed byte (e.g., 255 becomes -1).
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ZipUtil

        public ZipUtil()
    • Method Detail

      • toDosTime

        public static ZipLong toDosTime​(java.util.Date time)
        Convert a Date object to a DOS date/time field.
        Parameters:
        time - the Date to convert
        Returns:
        the date as a ZipLong
      • toDosTime

        public static byte[] toDosTime​(long t)
        Convert a Date object to a DOS date/time field.

        Stolen from InfoZip's fileio.c

        Parameters:
        t - number of milliseconds since the epoch
        Returns:
        the date as a byte array
      • toDosTime

        public static void toDosTime​(long t,
                                     byte[] buf,
                                     int offset)
        Convert a Date object to a DOS date/time field.

        Stolen from InfoZip's fileio.c

        Parameters:
        t - number of milliseconds since the epoch
        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
      • adjustToLong

        public static long adjustToLong​(int i)
        Assumes a negative integer really is a positive integer that has wrapped around and re-creates the original value.
        Parameters:
        i - the value to treat as unsigned int.
        Returns:
        the unsigned int as a long.
      • reverse

        public static byte[] reverse​(byte[] array)
        Reverses a byte[] array. Reverses in-place (thus provided array is mutated), but also returns same for convenience.
        Parameters:
        array - to reverse (mutated in-place, but also returned for convenience).
        Returns:
        the reversed array (mutated in-place, but also returned for convenience).
        Since:
        1.5
      • signedByteToUnsignedInt

        public static int signedByteToUnsignedInt​(byte b)
        Converts a signed byte into an unsigned integer representation (e.g., -1 becomes 255).
        Parameters:
        b - byte to convert to int
        Returns:
        int representation of the provided byte
        Since:
        1.5
      • unsignedIntToSignedByte

        public static byte unsignedIntToSignedByte​(int i)
        Converts an unsigned integer to a signed byte (e.g., 255 becomes -1).
        Parameters:
        i - integer to convert to byte
        Returns:
        byte representation of the provided int
        Throws:
        java.lang.IllegalArgumentException - if the provided integer is not inside the range [0,255].
        Since:
        1.5
      • fromDosTime

        public static java.util.Date fromDosTime​(ZipLong zipDosTime)
        Convert a DOS date/time field to a Date object.
        Parameters:
        zipDosTime - contains the stored DOS time.
        Returns:
        a Date instance corresponding to the given time.
      • dosToJavaTime

        public static long dosToJavaTime​(long dosTime)
        Converts DOS time to Java time (number of milliseconds since epoch).
        Parameters:
        dosTime - time to convert
        Returns:
        converted time