Package jp.gr.java_conf.dangan.util.lha
Class LhaImmediateOutputStream
java.lang.Object
java.io.OutputStream
jp.gr.java_conf.dangan.util.lha.LhaImmediateOutputStream
- All Implemented Interfaces:
Closeable
,Flushable
,AutoCloseable
???}??????RandomAccessFile?? ???k?f?[?^???o???????????????[?e?B???e?B?N???X?B
java.util.zip.ZipOutputStream ???????C???^?[?t?F?C?X???????????????????B
???k???s??( ???k???T?C?Y?????k?O?T?C?Y?????????????? )???????? ???????s??????????????????B ?????? ???????????R?[?h???????B
?????AJDK 1.1 ???O???? RandomAccessFile ?? setLength ??????????????A ?????f?[?^?????????????f?[?^???????????????t?@?C???T?C?Y???????l?????}?????o??????B
?}???????_???????T?C?Y0???V????t?@?C?????J???????????????????????????????B
java.util.zip.ZipOutputStream ???????C???^?[?t?F?C?X???????????????????B
???k???s??( ???k???T?C?Y?????k?O?T?C?Y?????????????? )???????? ???????s??????????????????B ?????? ???????????R?[?h???????B
LhaCompressFiles( String arcfile, File[] files ){ LhaImmediateOutputStream lio = new LhaImmediateOutputStream( arcfile ); for( int i = 0 ; i < files.length ; i++ ){ RandomAccessFile raf = new RandomAccessFile( files[i] ); LhaHeader header = new LhaHeader( files[i].getName() ); header.setLastModified( new Date( files.lastModified() ) ); header.setOriginalSize( files.length() ); byte[] buffer = new byte[8192]; int length; while( 0 <= ( length = raf.read( buffer ) ) ){ lio.write( buffer, 0, length ); } if( !lio.closeEntry() ){ header.setCompressMethod( CompressMethod.LH0 ); lio.putNextEntry( lhaheader ); raf.seek( 0 ); while( 0 <= ( length = raf.read( buffer ) ) ){ lio.write( buffer, 0, length ); } lio.closeEntry(); } lio.close(); }?i?????????????????????A?}???????????????N???X?????B?????????i???????????b???? ???????????????\???????????????????B(???????M?K?o?C?g?????f?[?^????????????) LhaRetainedOutputStream ??????????A?}?????????????????????????????v??????????B
?????AJDK 1.1 ???O???? RandomAccessFile ?? setLength ??????????????A ?????f?[?^?????????????f?[?^???????????????t?@?C???T?C?Y???????l?????}?????o??????B
?}???????_???????T?C?Y0???V????t?@?C?????J???????????????????????????????B
-- revision history -- $Log: LhaImmediateOutputStream.java,v $ Revision 1.2 2002/12/11 02:25:06 dangan [bug fix] jdk1.2 ???R???p?C?????????????????????C???B Revision 1.1 2002/12/08 00:00:00 dangan [maintenance] LhaConstants ???? CompressMethod ?????N???X???????X???????????C???B Revision 1.0 2002/08/05 00:00:00 dangan add to version control [change] ?R???X?g???N?^???? ?????? String encode ?????????????p?~?A Properties ???????????????????????B [maintenance] ?\?[?X???? ?^?u?p?~ ???C?Z???X????C??
- Version:
- $Revision: 1.2 $
- Author:
- $Author: dangan $
-
Constructor Summary
ConstructorsConstructorDescriptionLhaImmediateOutputStream
(File filename) filename ???t?@?C???? ???k?f?[?^???o??????OutputStream???\?z?????B
?e???k?`?????????????????????????????????v???p?e?B???? LhaProperty.getProperties() ???????????v???p?e?B???g?p???????BLhaImmediateOutputStream
(File filename, Properties property) filename ???t?@?C???? ???k?f?[?^???o??????OutputStream???\?z?????Bfile?? ???k?f?[?^???o??????OutputStream???\?z?????B
?e???k?`?????????????????????????????????v???p?e?B???? LhaProperty.getProperties() ???????????v???p?e?B???g?p???????BLhaImmediateOutputStream
(RandomAccessFile file, Properties property) file?? ???k?f?[?^???o??????OutputStream???\?z?????B
?e???k?`?????????????????????????????????v???p?e?B???? LhaProperty.getProperties() ???????????v???p?e?B???g?p???????BLhaImmediateOutputStream
(String filename) filename ???t?@?C???? ???k?f?[?^???o??????OutputStream???\?z?????B
?e???k?`?????????????????????????????????v???p?e?B???? LhaProperty.getProperties() ???????????v???p?e?B???g?p???????BLhaImmediateOutputStream
(String filename, Properties property) filename ???t?@?C???? ???k?f?[?^???o??????OutputStream???\?z?????B -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
?o???????S?????f?[?^???o?????A?X?g???[??????????B
?????A?g?p????????S???????\?[?X???????????Bboolean
?????o???????G???g????????A?????G???g?????o?????\?????????????B
putNextEntryNotYetCompressed() ???J????G???g????????????? ?}?????\?b?h?????k?????s????(???k???T?C?Y?????k?O?T?C?Y??????????)?????A ?G???g???S?????????????? ?? RandomAccessFile ?????????????B
?}?????????????P?? ?t?@?C???|?C???^?? ?G???g???J?n???u?????????????????????? RandomAccessFile ?? setLength() ????? jdk1.1 ???O???? ?G???g?????????k(???????????????k?@)?????o????????????A ?????f?[?^???I?[???~?????k?????s?????s???S???f?[?^???c???????????????Bvoid
flush()
?????????????????G???g?????f?[?^??????I???o???????????o???B ?}???? PostLzssEncoder, LzssOutputStream ???K?????N?? flush() ???????????????????????f?[?^???o???????B (???????????? ?P?????k???????????????????????B)void
putNextEntry
(LhaHeader header) ?V????G???g???????????????????X?g???[?????????????B
?}?????\?b?h?? ???????k???????G???g?????????? putNextEntryAlreadyCompressed(), ????????k???????????????? putNextEntryNotYetCompressed() ???????o???B
???k????????????????????A header.getCompressedSize()
header.getCRC()
???????????????? LhaHeader.UNKNOWN ????????????????k?????????????????B
header ???????m?? OriginalSize ???w????????????K?v???????Bvoid
???????k???????G???g?????????}?????????X?g???[?????????????B
???k?????f?[?^????????????A?????o?????????????????Bvoid
????????k???????????G???g?????????}?????????X?g???[???? ?????????Bheader ?? CompressedSize,CRC???w??????????????? ?????????B?}?????\?b?h???n?????? header ???? LhaHeader.setOriginalSize() ???p??? ???m???I???W?i???T?C?Y ???w????????????K?v???????Bvoid
write
(byte[] buffer) ???????G???g???? buffer?????e???S???????o???Bvoid
write
(byte[] buffer, int index, int length) ???????G???g???? buffer?? index???? length?o?C?g???f?[?^???????o???Bvoid
write
(int data) ???????G???g????1?o?C?g???f?[?^???????}???BMethods inherited from class java.io.OutputStream
nullOutputStream
-
Constructor Details
-
LhaImmediateOutputStream
filename ???t?@?C???? ???k?f?[?^???o??????OutputStream???\?z?????B
?e???k?`?????????????????????????????????v???p?e?B???? LhaProperty.getProperties() ???????????v???p?e?B???g?p???????B- Parameters:
filename
- ???k?f?[?^???????}???t?@?C???????O- Throws:
FileNotFoundException
- filename ???^?????????t?@?C????????????????????BSecurityException
- ?Z?L?????e?B?}?l?[?W?????t?@?C???????A?N?Z?X??????????????B- See Also:
-
LhaImmediateOutputStream
filename ???t?@?C???? ???k?f?[?^???o??????OutputStream???\?z?????B- Parameters:
filename
- ???k?f?[?^???????}???t?@?C???????Oproperty
- ?e???k?`?????????????????????????????????????v???p?e?B- Throws:
FileNotFoundException
- filename ???^?????????t?@?C????????????????????BSecurityException
- ?Z?L?????e?B?}?l?[?W?????t?@?C???????A?N?Z?X??????????????B- See Also:
-
LhaImmediateOutputStream
filename ???t?@?C???? ???k?f?[?^???o??????OutputStream???\?z?????B
?e???k?`?????????????????????????????????v???p?e?B???? LhaProperty.getProperties() ???????????v???p?e?B???g?p???????B- Parameters:
filename
- ???k?f?[?^???????}???t?@?C???????O- Throws:
FileNotFoundException
- filename ???^?????????t?@?C????????????????????BSecurityException
- ?Z?L?????e?B?}?l?[?W?????t?@?C???????A?N?Z?X??????????????BIOException
- JDK1.2 ???R???p?C????????????????????????B- See Also:
-
LhaImmediateOutputStream
filename ???t?@?C???? ???k?f?[?^???o??????OutputStream???\?z?????B- Parameters:
filename
- ???k?f?[?^???????}???t?@?C???????Oproperty
- ?e???k?`?????????????????????????????????????v???p?e?B- Throws:
FileNotFoundException
- filename ???^?????????t?@?C????????????????????BSecurityException
- ?Z?L?????e?B?}?l?[?W?????t?@?C???????A?N?Z?X??????????????BIOException
- JDK1.2 ???R???p?C????????????????????????B- See Also:
-
LhaImmediateOutputStream
file?? ???k?f?[?^???o??????OutputStream???\?z?????B
?e???k?`?????????????????????????????????v???p?e?B???? LhaProperty.getProperties() ???????????v???p?e?B???g?p???????B- Parameters:
file
- RandomAccessFile ???C???X?^???X?B
- ???? close() ?????????????B
- ?R???X?g???N?^?? mode ???? "rw" ?I?v?V???????g?p?????A ?????}?????????}?????o???????????????????C???X?^???X???????}???B
- See Also:
-
LhaImmediateOutputStream
file?? ???k?f?[?^???o??????OutputStream???\?z?????B
?e???k?`?????????????????????????????????v???p?e?B???? LhaProperty.getProperties() ???????????v???p?e?B???g?p???????B- Parameters:
file
- RandomAccessFile ???C???X?^???X?B
- ???? close() ?????????????B
- ?R???X?g???N?^?? mode ???? "rw" ?I?v?V???????g?p?????A ?????}?????????}?????o???????????????????C???X?^???X???????}???B
property
- ?e???k?`?????????????????????????????????????v???p?e?B- See Also:
-
-
Method Details
-
write
???????G???g????1?o?C?g???f?[?^???????}???B- Specified by:
write
in classOutputStream
- Parameters:
data
- ?????}???f?[?^- Throws:
IOException
- ???o???G???[??????????????B
-
write
???????G???g???? buffer?????e???S???????o???B- Overrides:
write
in classOutputStream
- Parameters:
buffer
- ?????o???f?[?^?????????o?C?g?z??- Throws:
IOException
- ???o???G???[??????????????B
-
write
???????G???g???? buffer?? index???? length?o?C?g???f?[?^???????o???B- Overrides:
write
in classOutputStream
- Parameters:
buffer
- ?????o???f?[?^?????????o?C?g?z??index
- buffer?????????o???~???f?[?^???J?n???ulength
- ?f?[?^???o?C?g??- Throws:
IOException
- ???o???G???[??????????????B
-
flush
?????????????????G???g?????f?[?^??????I???o???????????o???B ?}???? PostLzssEncoder, LzssOutputStream ???K?????N?? flush() ???????????????????????f?[?^???o???????B (???????????? ?P?????k???????????????????????B)- Specified by:
flush
in interfaceFlushable
- Overrides:
flush
in classOutputStream
- Throws:
IOException
- ???o???G???[?????????????- See Also:
-
close
?o???????S?????f?[?^???o?????A?X?g???[??????????B
?????A?g?p????????S???????\?[?X???????????B- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in classOutputStream
- Throws:
IOException
- ???o???G???[?????????????
-
putNextEntry
?V????G???g???????????????????X?g???[?????????????B
?}?????\?b?h?? ???????k???????G???g?????????? putNextEntryAlreadyCompressed(), ????????k???????????????? putNextEntryNotYetCompressed() ???????o???B
???k????????????????????A- header.getCompressedSize()
- header.getCRC()
header ???????m?? OriginalSize ???w????????????K?v???????B- Parameters:
header
- ?????}???G???g????????????????????? LhaHeader???C???X?^???X?B- Throws:
IOException
- ???o???G???[?????????????IllegalArgumentException
- header.getOriginalSize() ?? LhaHeader.UNKNOWN ??????????
- header.getCompressedSize()
-
putNextEntryAlreadyCompressed
???????k???????G???g?????????}?????????X?g???[?????????????B
???k?????f?[?^????????????A?????o?????????????????B- Parameters:
header
- ?????}???G???g????????????????????? LhaHeader???C???X?^???X?B- Throws:
IOException
- ???o???G???[?????????????IllegalArgumentException
-- header.getOriginalSize() ?? LhaHeader.UNKNOWN ??????????
- header.getComressedSize() ?? LhaHeader.UNKNOWN ??????????
- header.getCRC() ?? LhaHeader.UNKNOWN ??????????
IllegalStateException
- ???O???G???g????????? closeEntry() ??????????????
-
putNextEntryNotYetCompressed
????????k???????????G???g?????????}?????????X?g???[???? ?????????Bheader ?? CompressedSize,CRC???w??????????????? ?????????B?}?????\?b?h???n?????? header ???? LhaHeader.setOriginalSize() ???p??? ???m???I???W?i???T?C?Y ???w????????????K?v???????B- Parameters:
header
- ?????}???G???g????????????????????? LhaHeader???C???X?^???X?B- Throws:
IOException
- ???o???G???[?????????????IllegalArgumentException
- header.getOriginalSize() ?? LhaHeader.UNKNOWN ????????????IllegalStateException
- ???O???G???g????????? closeEntry() ??????????????
-
closeEntry
?????o???????G???g????????A?????G???g?????o?????\?????????????B
putNextEntryNotYetCompressed() ???J????G???g????????????? ?}?????\?b?h?????k?????s????(???k???T?C?Y?????k?O?T?C?Y??????????)?????A ?G???g???S?????????????? ?? RandomAccessFile ?????????????B
?}?????????????P?? ?t?@?C???|?C???^?? ?G???g???J?n???u?????????????????????? RandomAccessFile ?? setLength() ????? jdk1.1 ???O???? ?G???g?????????k(???????????????k?@)?????o????????????A ?????f?[?^???I?[???~?????k?????s?????s???S???f?[?^???c???????????????B- Returns:
- ?G???g?????o?????????????? true?A ???k?O?????????k?????????T?C?Y???????????????????A ?G???g???????????????????? false?B ?????A?????????????G???g?????????????????? true ???????B
- Throws:
IOException
- ???o???G???[?????????????
-