Class LhaHeader

  • All Implemented Interfaces:
    java.lang.Cloneable

    public class LhaHeader
    extends java.lang.Object
    implements java.lang.Cloneable
    LHA?w?b?_???????B
    ?�}???N???X?? java.util.zip ?p?b?P?[?W???? ZipEntry ?????�‘???A ?w?b?_?????o?????????????[?e?B???e?B???????????_???????B
    ?�}???N???X?? set?n???\?b?h???�~?????????????�‘?`?F?b?N?? getBytes() ?????s?????????????????�‘???B?????_???????????�}???B
     -- revision history --
     $Log: LhaHeader.java,v $
     Revision 1.2.2.3  2005/05/03 07:50:30  dangan
     [bug fix]
         exportLevel1Header() ?? skip size ???`?F?b?N?????????�‘?????????B
    
     Revision 1.2.2.2  2005/02/02 00:57:46  dangan
     [bug fix]
         importLevelXHeader(byte[], String) ???t?@?C???T?C?Y?? int ?????????????�‘??????
         31?r?b?g?l???????T?C?Y???t?@?C?????????????????�‘?????????????C???B
    
     Revision 1.2.2.1  2003/07/20 13:19:21  dangan
     [bug fix]
         exportDirNameExtHeader(String) ?? System.arraycopy ?? src ?? dest ???z?u???????????�‘???B
    
     Revision 1.2  2002/12/08 00:00:00  dangan
     [maintenance]
         LhaConstants ???? CompressMethod ?????N???X???????X???????????C???B
    
     Revision 1.1  2002/12/05 00:00:00  dangan
     [improvement]
         64?r?b?g?t?@?C???T?C?Y?w?b?_???????B
     [change]
         LhaUtil.DefaultEncoding ???? LhaProperty.encoding ???g?p?????????????X?B
         getNextHeaderData() ?? getFirstHeaderData() ?????O???X?B
         ?V???�‘ getNextHeaderData() ???????o?????????u??
         ?w?b?_?????????????�‘???? null ???????B
         LhaHeader ???g?�’?????T?u?N???X???g?p?????l???????? createInstance() ???????B
    
     Revision 1.0  2002/08/05 00:00:00  dangan
     add to version control
     [bug fix]
         setDate( null ) ?????????�‘???B
         setCompressMethod( null ) ?????????�‘???B
         exportLevel2,3Header ??
         Date ?? 32bit ?? time_t ???????O???l(?????l??????)???????????????�‘???B
     [change]
         exportHeader ?? ?w?b?_???x???? 0,1,2,3 ???�‘???????????�‘????
         IllegalStateException ?????�‹???????????X?B
     [maintenance]
         ?\?[?X????
         ?^?u?p?~
         ???C?Z???X?�÷???C??
    
     
    Version:
    $Revision: 1.2.2.3 $
    Author:
    $Author: dangan $
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int NO_CRC
      CRC?l?????�‘?????????????l?B ???x??0?w?b?_??CRC?l???�÷???????�‘?????????????B
      static int UNKNOWN
      ?s?????????????l?B LhaHeader.getCRC(), LhaHeader.getCompressedSize(), LhaHeader.getOriginalSzie() ???�}???l?????????????? ?????O?????????A?????l???s?????????????????B
    • Constructor Summary

      Constructors 
      Constructor Description
      LhaHeader​(byte[] HeaderData)
      ?w?b?_?f?[?^???? ?V???�‘ LhaHeader ?? ?C???X?^???X???�÷?�Ê?????B
      ?G???R?[?h?? LhaUtil.DefaultEncode ???g?p???????B
      LhaHeader​(byte[] HeaderData, java.lang.String encode)
      ?w?b?_?f?[?^???? ?V???�‘ LhaHeader ?? ?C???X?^???X???�÷?�Ê?????B
      LhaHeader​(java.lang.String path)
      path ???�‘?????O?????? LhaHeader ???C???X?^???X???�÷?�Ê?????B
      ?p?X?f???~?^???? File.separator ???g?p?????�}???B
      path ?? ?p?X?f???~?^???^?[?~?l?[?g???????�‘???????? ?f?B???N?g?????????????????????B
      LhaHeader​(java.lang.String path, java.util.Date date)
      path ???�‘?????O???????A???I?X?V?????? date ?? LhaHeader ???C???X?^???X???�÷?�Ê?????B
      ?p?X?f???~?^???? File.separator ???g?p?????�}???B
      path ?? ?p?X?f???~?^???^?[?~?l?[?g???????�‘???????? ?f?B???N?g?????????????????????B
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static boolean checkHeaderData​(byte[] HeaderData)
      ?w?b?_?f?[?^?????????????????`?F?b?N?????B
      java.lang.Object clone()
      ?�}???I?u?W?F?N?g???R?s?[?????�Ê?????????B
      static LhaHeader createInstance​(byte[] HeaderData, java.util.Properties property)
      property ?? ?L?["lha.header" ???????t?????????�÷?�Ê?????g?p???? HeaderData ???? LhaHeader ???C???X?^???X???�÷?�Ê?????B
      protected byte[][] exportExtendHeaders​(java.lang.String encode)
      ?g?�’?w?b?_???o?C?g?z?????`???????o???????B ?�}?????\?b?h???I?[?o?[???C?h?????????????? ?l?X???g?�’?w?b?_???????????�}???????\???????B LhaHeader ???? private ?????o?????? ExtraExtHeaders ???o?^???????g?�’?w?b?_???????? ???????????????B ?o?????`???? ?????o?C?g?????g?�’?w?b?_?????q ?�}?�‘???A?g?�’?w?b?_?f?[?^???i?[?????A ?????g?�’?w?b?_???????????Y?t???????�‘?B
      byte[] getBytes()
      ?�}??LhaHeader???f?[?^???g?p???? ?w?b?_?f?[?^???�÷?�Ê???A ???????o?C?g?z?????`???????B
      ?G???R?[?h???f?t?H???g?????????g?p???????B
      byte[] getBytes​(java.lang.String encode)
      ?�}??LhaHeader???f?[?^???g?p???? ?w?b?_?f?[?^???�÷?�Ê???A ???????o?C?g?z?????`???????B
      long getCompressedSize()
      ?f?[?^?????k?????T?C?Y???????B
      java.lang.String getCompressMethod()
      ?f?[?^?????k???????@???????????�÷???????????B
      int getCRC()
      ?f?[?^??CRC16?l???????B
      protected byte[] getExtraData()
      ???x?? 0 ?w?b?_?A ???x?? 1 ?w?b?_?????? ?t???????????\???????????{?w?b?_?????g?�’?f?[?^???????B
      static byte[] getFirstHeaderData​(java.io.InputStream in)
      ?????X?g???[?????? ???????w?b?_???????????B
      ?�}?????\?b?h?????x??1?w?b?_?A???????? ???x??3?w?b?_?? ?????f?[?^???�÷?????????A?w?b?_?S???????????????????? in.mark( 65536 ) ?? ???E???�L???? ???????????\?????????A ???????? reset() ???????? ?????????f?[?^???????????? ???\?????????B
      ?????AInputStream ??mark/reset ?????????????? ?X?g???[???I?[?t???? ?w?b?_???????f?[?^???�÷???????? ?w?b?_???S?????????????????? EndOfStream???B?????????�‘?A reset()???????? ?????????f?[?^???????????????\?????????B
      int getHeaderLevel()
      ?�}???w?b?_???w?b?_???x?????????B
      java.util.Date getLastModified()
      ?f?[?^?????I?X?V???????????B
      protected byte getLevel0DosAttribute()
      ???x?? 0 ?w?b?_???L?????? DOS ???t?@?C?????????????B
      static byte[] getNextHeaderData​(java.io.InputStream in)
      ?????X?g???[?????? ?????w?b?_???????????B
      ?�}?????\?b?h?????x??1?w?b?_?A???????? ???x??3?w?b?_?? ?????f?[?^???�÷?????????A?w?b?_?S???????????????????? in.mark( 65536 ) ?? ???E???�L???? ???????????\?????????A ???????? reset() ???????? ?????????f?[?^???????????? ???\?????????B
      ?????A?X?g???[???I?[?t???? ?w?b?_???????f?[?^???�÷?????? ?? ?w?b?_???S?????????????????? EndOfStream???B?????????�‘?A reset()???????? ?????????f?[?^???????????????\?????????B
      long getOriginalSize()
      ?f?[?^?????k?O???T?C?Y???????B
      byte getOSID()
      ?�}???w?b?_?????�Ê???? OS ???????q???????B
      java.lang.String getPath()
      ?f?[?^?????O?A ?????????f?[?^???t?@?C?????????????????p?X?????????B
      ?p?X???????�‘???????AWindows ?n?? A: ???????? ?h???C?u???????????????????�‘?B
      ?p?X?f???~?^???? File.separator ???g?p?????B
      protected void importExtendHeader​(byte[] HeaderData, int index, int length, java.lang.String encode)
      ?g?�’?w?b?_???????????B ?�}?????\?b?h???I?[?o?[???C?h?????????????? ?l?X???g?�’?w?b?_???????????�}???????\???????B LhaHeader ???? ?g?�’?w?b?_?? private ?????o?????? ExtraExtHeaders ???o?^???????????????B
      void setCompressedSize​(long size)
      ???k???f?[?^?T?C?Y???????????B
      LhaHeader.UNKNOWN( -1 ) ?? ?T?C?Y?s???????? ???????????????????????????????�‘?B
      ???? ???x??0,1,3 ?????????????????? 4?o?C?g?l?????????????? 4?o?C?g???\?????????�‘?l?????????????? getByte() ???????O?????�‹???B
      void setCompressMethod​(java.lang.String method)
      ???k?@?�÷???????????????B
      void setCRC​(int crc)
      ???k?O???f?[?^?? CRC16?l???????????B
      LhaHeader.UNKNOWN( -1 ) ?? ?T?C?Y?s???????? ???????????????????????????????�‘?B
      LhaHeader.NO_CRC( -2 ) ?? ???x??0?w?b?_???? ???? CRC?l???o???????�‘?�}???????????????????l ???????B
      ?????w?b?_???x???????? LhaHeader.NO_CRC( -2 ) ???????????????O?????�‹???�‘?? getBytes() ???? ???O?????�‹???????????????�}???B
      ?L????????????2?o?C?g???A????2?o?C?g?????????????B
      protected void setExtraData​(byte[] data)
      ???x?? 0,1?w?b?_?????g?p?????? ???{?w?b?_?? ?g?�’???????????????B
      ?g?�’???????o?C?g???????�˜?????�÷?????????A?�}?????\?b?h?? ?�˜?????z?????????O?????�‹???�‘?�}?????????B?�˜?????z???????? getBytes()???????O?????�‹???B
      void setHeaderLevel​(int level)
      ?w?b?_???x?????????????B
      ?????????????????? 0,1,2,3 ?????????????�‘???B
      ?w?b?_???x???????X???p?X???????????ALastModified ???�˜?????? ???????????????????????????K?v???????B
      void setLastModified​(java.util.Date date)
      ???k?f?[?^?????I?X?V???????????????B
      ?w?b?_???x???? 0,1 ???????? MsdosDate???\???????????A ?w?b?_???x???? 2,3 ???????? 4byte ?? time_t???\?????????? ?????t?????????????????�‘?B
      ???????????????? ?�}?????\?b?h?????O?????�‹???�‘?�}?????????? ???�}???B???????????�‘?????? ?�}?????\?b?h?????O?????�‹???�‘???A getBytes() ???????O?????�‹???B
      protected void setLevel0DosAttribute​(byte attribute)
      ???x?? 0?w?b?_?????????o?????????A MS-DOS ???t?@?C?????????????????B
      void setOriginalSize​(long size)
      ???k?O?f?[?^?T?C?Y???????????B
      LhaHeader.UNKNOWN( -1 ) ?? ?T?C?Y?s???????? ???????????????????????????????�‘?B
      ???? ???x??0,1,3 ?????????????????? 4?o?C?g?l?????????????? 4?o?C?g???\?????????�‘?l?????????????? getByte() ???????O?????�‹???B
      void setOSID​(byte id)
      ?�}???w?b?_??OS???L?????????????????????A ?????f?[?^???????????????????????? OS???????q???????????B
      void setPath​(java.lang.String path)
      ?f?[?^?????O?A?????????f?[?^???t?@?C?????????????A ?f?[?^???p?X???????????B
      ?p?X?f???~?^???? File.separator ???g?p?????B
      ?w?b?_???x?????????? path ?????o?C?g?????�˜?????�÷?????????A ?�}?????\?b?h???�˜?????z???????????? ???O?????�‹???�‘?�}???? ?????B?�˜?????z?????????? ?�}?????\?b?h?????O?????�‹???�‘???A getBytes()???????O?????�‹??
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • UNKNOWN

        public static final int UNKNOWN
        ?s?????????????l?B LhaHeader.getCRC(), LhaHeader.getCompressedSize(), LhaHeader.getOriginalSzie() ???�}???l?????????????? ?????O?????????A?????l???s?????????????????B
        See Also:
        Constant Field Values
      • NO_CRC

        public static final int NO_CRC
        CRC?l?????�‘?????????????l?B ???x??0?w?b?_??CRC?l???�÷???????�‘?????????????B
        See Also:
        Constant Field Values
    • Constructor Detail

      • LhaHeader

        public LhaHeader​(java.lang.String path)
        path ???�‘?????O?????? LhaHeader ???C???X?^???X???�÷?�Ê?????B
        ?p?X?f???~?^???? File.separator ???g?p?????�}???B
        path ?? ?p?X?f???~?^???^?[?~?l?[?g???????�‘???????? ?f?B???N?g?????????????????????B
        Parameters:
        path - ?p?X??
        Throws:
        IllgelArgumentException - path ?? null ?? ???�÷???????�‘????????????????
      • LhaHeader

        public LhaHeader​(java.lang.String path,
                         java.util.Date date)
        path ???�‘?????O???????A???I?X?V?????? date ?? LhaHeader ???C???X?^???X???�÷?�Ê?????B
        ?p?X?f???~?^???? File.separator ???g?p?????�}???B
        path ?? ?p?X?f???~?^???^?[?~?l?[?g???????�‘???????? ?f?B???N?g?????????????????????B
        Parameters:
        path - ?p?X??
        date - ???I?X?V????
        Throws:
        IllgelArgumentException - path ?? null ?? ???�÷???????�‘???????????????A date ?? null???????????B
      • LhaHeader

        public LhaHeader​(byte[] HeaderData)
        ?w?b?_?f?[?^???? ?V???�‘ LhaHeader ?? ?C???X?^???X???�÷?�Ê?????B
        ?G???R?[?h?? LhaUtil.DefaultEncode ???g?p???????B
        Parameters:
        HeaderData - ?w?b?_?f?[?^
        Throws:
        java.lang.IndexOutOfBoundsException - ?w?b?_?f?[?^?????????�‘?????? ?f?[?^???????????????????u?? HeaderData ???????O????????
        java.lang.IllegalArgumentException - ?w?b?_???x???? 0,1,2,3 ?????????????�‘???A HeaderData ?? null ??????
      • LhaHeader

        public LhaHeader​(byte[] HeaderData,
                         java.lang.String encode)
                  throws java.io.UnsupportedEncodingException
        ?w?b?_?f?[?^???? ?V???�‘ LhaHeader ?? ?C???X?^???X???�÷?�Ê?????B
        Parameters:
        HeaderData - ?w?b?_?f?[?^
        encode - ?�÷???????????????????????g?p???? ?G???R?[?h
        Throws:
        java.lang.IndexOutOfBoundsException - ?w?b?_?f?[?^?????????�‘?????? ?f?[?^???????????????????u?? HeaderData ???????O????????
        java.io.UnsupportedEncodingException - encode ???w?????????G???R?[?h?? ?T?|?[?g???????�‘????
        java.lang.IllegalArgumentException - ?w?b?_???x???? 0,1,2,3 ?????????????�‘???A HeaderData ?? null ??????
    • Method Detail

      • clone

        public java.lang.Object clone()
        ?�}???I?u?W?F?N?g???R?s?[?????�Ê?????????B
        Overrides:
        clone in class java.lang.Object
        Returns:
        ?�}???I?u?W?F?N?g???R?s?[
      • getCompressMethod

        public java.lang.String getCompressMethod()
        ?f?[?^?????k???????@???????????�÷???????????B
        Returns:
        ???k?@?�÷????
      • getOriginalSize

        public long getOriginalSize()
        ?f?[?^?????k?O???T?C?Y???????B
        Returns:
        ???k?O???T?C?Y
        LhaHeader( String path ) ?????? LhaHeader( String path, Date date )???�÷?�Ê?????? ?C???X?^???X???????????????T?C?Y???s???????? LhaHeader.UNKNOWN( -1 ) ???????B
        See Also:
        UNKNOWN
      • getCompressedSize

        public long getCompressedSize()
        ?f?[?^?????k?????T?C?Y???????B
        Returns:
        ???k?????T?C?Y
        LhaHeader( String path ) ?????? LhaHeader( String path, Date date )???�÷?�Ê?????? ?C???X?^???X???????????????T?C?Y???s???????? LhaHeader.UNKNOWN( -1 ) ???????B
        See Also:
        UNKNOWN
      • getLastModified

        public java.util.Date getLastModified()
        ?f?[?^?????I?X?V???????????B
        Returns:
        ?f?[?^?????I?X?V????
      • getHeaderLevel

        public int getHeaderLevel()
        ?�}???w?b?_???w?b?_???x?????????B
        Returns:
        ?w?b?_???x??
      • getPath

        public java.lang.String getPath()
        ?f?[?^?????O?A ?????????f?[?^???t?@?C?????????????????p?X?????????B
        ?p?X???????�‘???????AWindows ?n?? A: ???????? ?h???C?u???????????????????�‘?B
        ?p?X?f???~?^???? File.separator ???g?p?????B
        Returns:
        ?f?[?^?????O?A???????? ?p?X???B
        See Also:
        File.separator
      • getCRC

        public int getCRC()
        ?f?[?^??CRC16?l???????B
        Returns:
        ?f?[?^??CRC16?l
        LhaHeader( String path ) ?????? LhaHeader( String path, Date date )???�÷?�Ê?????? ?C???X?^???X??????????????CRC???s???????? LhaHeader.UNKNOWN( -1 ) ???????B
        ???x??0?w?b?_??CRC16?l?? ?t?B?[???h?????�‘?????? LhaHeader.NO_CRC( -2 )??????
        See Also:
        UNKNOWN, NO_CRC
      • getOSID

        public byte getOSID()
        ?�}???w?b?_?????�Ê???? OS ???????q???????B
        Returns:
        OS???????q
      • getExtraData

        protected byte[] getExtraData()
        ???x?? 0 ?w?b?_?A ???x?? 1 ?w?b?_?????? ?t???????????\???????????{?w?b?_?????g?�’?f?[?^???????B
        Returns:
        ?g?�’?f?[?^
      • getLevel0DosAttribute

        protected byte getLevel0DosAttribute()
        ???x?? 0 ?w?b?_???L?????? DOS ???t?@?C?????????????B
        Returns:
        DOS ?? ?t?@?C??????
      • getBytes

        public byte[] getBytes()
        ?�}??LhaHeader???f?[?^???g?p???? ?w?b?_?f?[?^???�÷?�Ê???A ???????o?C?g?z?????`???????B
        ?G???R?[?h???f?t?H???g?????????g?p???????B
        Returns:
        ?o?C?g?z?????i?[?????w?b?_?f?[?^
        Throws:
        java.lang.IllegalStateException -
        1. ???k?@?�÷??????encode???o?C?g?z???? ?????????? 5byte?????�‘????
        2. ???x??0,1,2?? ?t?@?C???????????�Ê?????? ?w?b?_???????????????�‘?B
        3. ???x??1,2???????g?�’?w?b?_?????????�Ê???o?????????�‘?B ?????????w?b?_??CRC?i?[?????????�‘?B
        4. ???x??0???O?? CRC ?? ???x??0?w?b?_?? CRC?????????�‘???????????????l?????? LhaHeader.NO_CRC( -2 ) ?????????????�‘???B
        5. ???x??0,1??????LastModified??MS-DOS?`?? ???\?????????�‘??????????????????????
        6. ???x??2,3??????LastModified??4?o?C?g?? time_t???\?????????�‘??????????????????????
        7. OriginalSize ???T?C?Y???s???????????????? ???????l?????? LhaHeader.UNKNOWN( -1 )?????????????�‘???B
        8. OriginalSize ?????l??????????
        9. ???x??0,1,3 ?????? OriginalSize ?? 4byte?l???\?????????�‘?l??????????
        10. CompressedSize ???T?C?Y???s???????????????? ???????l?????? LhaHeader.UNKNOWN( -1 )?????????????�‘???B
        11. CompressedSize ?????l??????????
        12. ???x??0,1,3 ?????? CompressedSize ?? 4byte?l???\?????????�‘?l??????????
        13. ???x??2??????OriginalSize ?????? CompressedSize?? 4?o?C?g?l???�L?????????t?@?C???T?C?Y?w?b?_???K?v?????? ?????g?�’?w?b?_?????????�Ê???t?@?C???T?C?Y?w?b?_???o???o?????�‘?????B
        14. CRC ??CRC16?l???s???????????????? ???????l?????? LhaHeader.UNKNOWN( -1 )?????????????�‘???B
        15. ?w?b?_???x???? 0,1,2,3 ???O??????????
        ?????????B
      • getBytes

        public byte[] getBytes​(java.lang.String encode)
                        throws java.io.UnsupportedEncodingException
        ?�}??LhaHeader???f?[?^???g?p???? ?w?b?_?f?[?^???�÷?�Ê???A ???????o?C?g?z?????`???????B
        Parameters:
        encode - ?�÷???????????o???????????g?p???? ?G???R?[?h
        Returns:
        ?o?C?g?z?????i?[?????w?b?_?f?[?^
        Throws:
        java.lang.IllegalStateException -
        1. ???k?@?�÷??????encode???o?C?g?z???? ?????????? 5byte?????�‘????
        2. ???x??0,1,2?? ?t?@?C???????????�Ê?????? ?w?b?_???????????????�‘?B
        3. ???x??1,2???????g?�’?w?b?_?????????�Ê???o?????????�‘?B ?????????w?b?_??CRC?i?[?????????�‘?B
        4. ???x??0???O?? CRC ?? ???x??0?w?b?_?? CRC?????????�‘???????????????l?????? LhaHeader.NO_CRC( -2 ) ?????????????�‘???B
        5. ???x??0,1??????LastModified??MS-DOS?`?? ???\?????????�‘??????????????????????
        6. ???x??2,3??????LastModified??4?o?C?g?? time_t???\?????????�‘??????????????????????
        7. OriginalSize ???T?C?Y???s???????????????? ???????l?????? LhaHeader.UNKNOWN( -1 )?????????????�‘???B
        8. OriginalSize ?????l??????????
        9. ???x??0,1,3 ?????? OriginalSize ?? 4byte?l???\?????????�‘?l??????????
        10. CompressedSize ???T?C?Y???s???????????????? ???????l?????? LhaHeader.UNKNOWN( -1 )?????????????�‘???B
        11. CompressedSize ?????l??????????
        12. ???x??0,1,3 ?????? CompressedSize ?? 4byte?l???\?????????�‘?l??????????
        13. ???x??2??????OriginalSize ?????? CompressedSize?? 4?o?C?g?l???�L?????????t?@?C???T?C?Y?w?b?_???K?v?????? ?????g?�’?w?b?_?????????�Ê???t?@?C???T?C?Y?w?b?_???o???o?????�‘?????B
        14. CRC ??CRC16?l???s???????????????? ???????l?????? LhaHeader.UNKNOWN( -1 )?????????????�‘???B
        15. ?w?b?_???x???? 0,1,2,3 ???O??????????
        ?????????B
        java.io.UnsupportedEncodingException - encode ???w?????????G???R?[?h?? ?T?|?[?g???????�‘????
      • setCompressMethod

        public void setCompressMethod​(java.lang.String method)
        ???k?@?�÷???????????????B
        Parameters:
        method - ???k?@?�÷????
        Throws:
        java.lang.IllegalArgumentException - ???k?@?�÷?????? '-' ???n???????�‘???�‘???A '-' ???I???????�‘???�‘?????B
      • setOriginalSize

        public void setOriginalSize​(long size)
        ???k?O?f?[?^?T?C?Y???????????B
        LhaHeader.UNKNOWN( -1 ) ?? ?T?C?Y?s???????? ???????????????????????????????�‘?B
        ???? ???x??0,1,3 ?????????????????? 4?o?C?g?l?????????????? 4?o?C?g???\?????????�‘?l?????????????? getByte() ???????O?????�‹???B
        Parameters:
        size - ???k?O?f?[?^?T?C?Y
        Throws:
        java.lang.IllegalArgumentException - size ?? LhaHeader.UNKNOWN( -1 )??????????????????????
        See Also:
        UNKNOWN
      • setCompressedSize

        public void setCompressedSize​(long size)
        ???k???f?[?^?T?C?Y???????????B
        LhaHeader.UNKNOWN( -1 ) ?? ?T?C?Y?s???????? ???????????????????????????????�‘?B
        ???? ???x??0,1,3 ?????????????????? 4?o?C?g?l?????????????? 4?o?C?g???\?????????�‘?l?????????????? getByte() ???????O?????�‹???B
        Parameters:
        size - ???k???f?[?^?T?C?Y
        Throws:
        java.lang.IllegalArgumentException - size ?? LhaHeader.UNKNOWN ??????????????????
        See Also:
        UNKNOWN
      • setLastModified

        public void setLastModified​(java.util.Date date)
        ???k?f?[?^?????I?X?V???????????????B
        ?w?b?_???x???? 0,1 ???????? MsdosDate???\???????????A ?w?b?_???x???? 2,3 ???????? 4byte ?? time_t???\?????????? ?????t?????????????????�‘?B
        ???????????????? ?�}?????\?b?h?????O?????�‹???�‘?�}?????????? ???�}???B???????????�‘?????? ?�}?????\?b?h?????O?????�‹???�‘???A getBytes() ???????O?????�‹???B
        Parameters:
        date - ???I?X?V????
        Throws:
        java.lang.IllegalArgumentException - date ?? null ??????????????????????
      • setHeaderLevel

        public void setHeaderLevel​(int level)
        ?w?b?_???x?????????????B
        ?????????????????? 0,1,2,3 ?????????????�‘???B
        ?w?b?_???x???????X???p?X???????????ALastModified ???�˜?????? ???????????????????????????K?v???????B
        Parameters:
        level - ?w?b?_???x??
      • setPath

        public void setPath​(java.lang.String path)
        ?f?[?^?????O?A?????????f?[?^???t?@?C?????????????A ?f?[?^???p?X???????????B
        ?p?X?f???~?^???? File.separator ???g?p?????B
        ?w?b?_???x?????????? path ?????o?C?g?????�˜?????�÷?????????A ?�}?????\?b?h???�˜?????z???????????? ???O?????�‹???�‘?�}???? ?????B?�˜?????z?????????? ?�}?????\?b?h?????O?????�‹???�‘???A getBytes()???????O?????�‹??
        Parameters:
        path - ?f?[?^?????O?A?????????t?@?C????
        Throws:
        java.lang.IllegalArgumentException - path ?????�÷??????????????
        See Also:
        File.separator
      • setCRC

        public void setCRC​(int crc)
        ???k?O???f?[?^?? CRC16?l???????????B
        LhaHeader.UNKNOWN( -1 ) ?? ?T?C?Y?s???????? ???????????????????????????????�‘?B
        LhaHeader.NO_CRC( -2 ) ?? ???x??0?w?b?_???? ???? CRC?l???o???????�‘?�}???????????????????l ???????B
        ?????w?b?_???x???????? LhaHeader.NO_CRC( -2 ) ???????????????O?????�‹???�‘?? getBytes() ???? ???O?????�‹???????????????�}???B
        ?L????????????2?o?C?g???A????2?o?C?g?????????????B
        Parameters:
        crc - ?f?[?^?????k?O??CRC16?l
        Throws:
        java.lang.IllegalArgumentException - crc ?? LhaHeader.UNKNOWN ??????????????????
        See Also:
        UNKNOWN, NO_CRC
      • setOSID

        public void setOSID​(byte id)
        ?�}???w?b?_??OS???L?????????????????????A ?????f?[?^???????????????????????? OS???????q???????????B
        Parameters:
        id - OS?????q
      • setExtraData

        protected void setExtraData​(byte[] data)
        ???x?? 0,1?w?b?_?????g?p?????? ???{?w?b?_?? ?g?�’???????????????B
        ?g?�’???????o?C?g???????�˜?????�÷?????????A?�}?????\?b?h?? ?�˜?????z?????????O?????�‹???�‘?�}?????????B?�˜?????z???????? getBytes()???????O?????�‹???B
        Parameters:
        data - ?g?�’???? ?g?�’???????o???????�‘?????? null???????????B
      • setLevel0DosAttribute

        protected void setLevel0DosAttribute​(byte attribute)
        ???x?? 0?w?b?_?????????o?????????A MS-DOS ???t?@?C?????????????????B
        Parameters:
        attribute - MS-DOS???t?@?C??????
      • importExtendHeader

        protected void importExtendHeader​(byte[] HeaderData,
                                          int index,
                                          int length,
                                          java.lang.String encode)
                                   throws java.io.UnsupportedEncodingException
        ?g?�’?w?b?_???????????B ?�}?????\?b?h???I?[?o?[???C?h?????????????? ?l?X???g?�’?w?b?_???????????�}???????\???????B LhaHeader ???? ?g?�’?w?b?_?? private ?????o?????? ExtraExtHeaders ???o?^???????????????B
        Parameters:
        HeaderData - ?w?b?_?f?[?^
        index - HeaderData?????g?�’?w?b?_???J?n???u
        length - ?g?�’?w?b?_??????
        encode - ?�÷???????????????????????g?p???? ?G???R?[?h
        Throws:
        java.io.UnsupportedEncodingException - encode ???w?????????G???R?[?h?? ?T?|?[?g???????�‘????
      • exportExtendHeaders

        protected byte[][] exportExtendHeaders​(java.lang.String encode)
                                        throws java.io.UnsupportedEncodingException
        ?g?�’?w?b?_???o?C?g?z?????`???????o???????B ?�}?????\?b?h???I?[?o?[???C?h?????????????? ?l?X???g?�’?w?b?_???????????�}???????\???????B LhaHeader ???? private ?????o?????? ExtraExtHeaders ???o?^???????g?�’?w?b?_???????? ???????????????B ?o?????`???? ?????o?C?g?????g?�’?w?b?_?????q ?�}?�‘???A?g?�’?w?b?_?f?[?^???i?[?????A ?????g?�’?w?b?_???????????Y?t???????�‘?B
        Parameters:
        encode - ?�÷???????????o???????????g?p???? ?G???R?[?h
        Returns:
        1?????g?�’?w?b?_??1?????o?C?g?z?????i?[???A ???????z?????`??????????
        Throws:
        java.io.UnsupportedEncodingException - encode ???w?????????G???R?[?h?? ?T?|?[?g???????�‘????
      • checkHeaderData

        public static boolean checkHeaderData​(byte[] HeaderData)
        ?w?b?_?f?[?^?????????????????`?F?b?N?????B
        Parameters:
        HeaderData - ?w?b?_?f?[?^???o?C?g?z?????i?[????????
        Returns:
        ?w?b?_?f?[?^?????????????? true ?????? false
      • getFirstHeaderData

        public static byte[] getFirstHeaderData​(java.io.InputStream in)
                                         throws java.io.IOException
        ?????X?g???[?????? ???????w?b?_???????????B
        ?�}?????\?b?h?????x??1?w?b?_?A???????? ???x??3?w?b?_?? ?????f?[?^???�÷?????????A?w?b?_?S???????????????????? in.mark( 65536 ) ?? ???E???�L???? ???????????\?????????A ???????? reset() ???????? ?????????f?[?^???????????? ???\?????????B
        ?????AInputStream ??mark/reset ?????????????? ?X?g???[???I?[?t???? ?w?b?_???????f?[?^???�÷???????? ?w?b?_???S?????????????????? EndOfStream???B?????????�‘?A reset()???????? ?????????f?[?^???????????????\?????????B
        Parameters:
        in - ?w?b?_?f?[?^???????????????X?g???[?? ?X?g???[???? mark/reset???T?|?[?g???K?v???????B
        Returns:
        ?????????????w?b?_?f?[?^
        ?w?b?_?????????????? EndOfStream ???B?????????? null
        Throws:
        java.io.IOException - ???o???G???[?????�÷????????
        java.lang.IllegalArgumentException - in ?? mark/reset???T?|?[?g?????�‘????
      • getNextHeaderData

        public static byte[] getNextHeaderData​(java.io.InputStream in)
                                        throws java.io.IOException
        ?????X?g???[?????? ?????w?b?_???????????B
        ?�}?????\?b?h?????x??1?w?b?_?A???????? ???x??3?w?b?_?? ?????f?[?^???�÷?????????A?w?b?_?S???????????????????? in.mark( 65536 ) ?? ???E???�L???? ???????????\?????????A ???????? reset() ???????? ?????????f?[?^???????????? ???\?????????B
        ?????A?X?g???[???I?[?t???? ?w?b?_???????f?[?^???�÷?????? ?? ?w?b?_???S?????????????????? EndOfStream???B?????????�‘?A reset()???????? ?????????f?[?^???????????????\?????????B
        Parameters:
        in - ?w?b?_?f?[?^???????????????X?g???[?? ?X?g???[???? mark/reset???T?|?[?g???K?v???????B
        Returns:
        ?????????????w?b?_?f?[?^
        ?w?b?_?????????????? EndOfStream ???B?????????? null
        Throws:
        java.io.IOException - ???o???G???[?????�÷????????
        java.lang.IllegalArgumentException - in ?? mark/reset???T?|?[?g?????�‘????
      • createInstance

        public static LhaHeader createInstance​(byte[] HeaderData,
                                               java.util.Properties property)
        property ?? ?L?["lha.header" ???????t?????????�÷?�Ê?????g?p???? HeaderData ???? LhaHeader ???C???X?^???X???�÷?�Ê?????B
        Parameters:
        HeaderData - ?w?b?_???f?[?^???????o?C?g?z??
        property - LhaProperty.parse() ?? LhaHeader ???C???X?^???X???�÷?�Ê???????????? ?�÷?�Ê???? ?L?["lha.header" ???l???????????v???p?e?B
        Returns:
        LhaHeader ???C???X?^???X