Java Compression class library using -4.apache commons Compress packaging, compression class library

Source: Internet
Author: User

Inkfish original, do not reprint commercial nature, reproduced please indicate the source (http://blog.csdn.net/inkfish).

Apache Commons Compress BZIP2 compression: (Source: Http://blog.csdn.net/inkfish)

Package study.inkfish.compress; Import Java.io.BufferedInputStream; Import Java.io.BufferedOutputStream; Import Java.io.File; Import Java.io.FileInputStream; Import Java.io.FileOutputStream; Import java.io.IOException; Import Java.io.InputStream; Import Java.io.OutputStream; Import Org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream; Import Org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream; Import Org.apache.commons.io.FilenameUtils; Import Org.apache.commons.io.IOUtils; public class Commonsbzip2compress extends Compress {@Override protected void docompress (file srcfile, file destfile) thro WS IOException {outputstream out = null; InputStream is = null; try {is = new Bufferedinputstream (new FileInputStream (srcfile), bufferlen); out = new Gzipcompressoroutputstream (New Buff Eredoutputstream (New FileOutputStream (DestFile), Bufferlen)); Ioutils.copy (is, out); Finally {ioutils.closequietly (IS); ioutils.closequietly (out); }} @Override protectedvoid dodecompress (file srcfile, file Destdir) throws IOException {InputStream is = null; OutputStream OS = null; try {file DestFile = new File (Destdir, Filenameutils.getbasename (srcfile.tostring ())); is = new Gzipcompressorinputstrea M (New Bufferedinputstream FileInputStream (srcfile), Bufferlen)); OS = new Bufferedoutputstream (new FileOutputStream (DestFile), Bufferlen); Ioutils.copy (is, OS); Finally {ioutils.closequietly (IS); ioutils.closequietly (OS); } } }

Apache Commons Compress gzip compression: (Source: Http://blog.csdn.net/inkfish)

Package study.inkfish.compress; Import Java.io.BufferedInputStream; Import Java.io.BufferedOutputStream; Import Java.io.File; Import Java.io.FileInputStream; Import Java.io.FileOutputStream; Import java.io.IOException; Import Java.io.InputStream; Import Java.io.OutputStream; Import Org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream; Import Org.apache.commons.compress.compressors.bzip2.BZip2CompressorOutputStream; Import Org.apache.commons.io.FilenameUtils; Import Org.apache.commons.io.IOUtils; public class Commonsgzipcompress extends Compress {@Override protected void docompress (file srcfile, file destfile) throw S IOException {outputstream out = null; InputStream is = null; try {is = new Bufferedinputstream (new FileInputStream (srcfile), bufferlen); out = new Bzip2compressoroutputstream (New Buf Feredoutputstream (New FileOutputStream (DestFile), Bufferlen)); Ioutils.copy (is, out); Finally {ioutils.closequietly (IS); ioutils.closequietly (out); }} @Override ProtecTed void Dodecompress (file srcfile, file Destdir) throws IOException {InputStream is = null; OutputStream OS = null; try {file DestFile = new File (Destdir, Filenameutils.getbasename (srcfile.tostring ())); is = new Bzip2compressorinputstre AM (New Bufferedinputstream (srcfile), Bufferlen) (new FileInputStream); OS = new Bufferedoutputstream (new FileOutputStream (DestFile), Bufferlen); Ioutils.copy (is, OS); Finally {ioutils.closequietly (IS); ioutils.closequietly (OS); } } }

Apache Commons Compress Zip compression: (Source: Http://blog.csdn.net/inkfish)

Package study.inkfish.compress; Import Java.io.BufferedInputStream; Import Java.io.BufferedOutputStream; Import Java.io.File; Import Java.io.FileInputStream; Import Java.io.FileOutputStream; Import java.io.IOException; Import Java.io.InputStream; Import Java.io.OutputStream; Import Org.apache.commons.compress.archivers.zip.ZipArchiveEntry; Import Org.apache.commons.compress.archivers.zip.ZipArchiveInputStream; Import Org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream; Import Org.apache.commons.io.IOUtils; public class Commonszipcompress extends Compress {/** for Single file compression/@Override protected void docompress (file srcfile, file des Tfile) throws IOException {ziparchiveoutputstream out = null; InputStream is = null; try {is = new Bufferedinputstream (new FileInputStream (srcfile), bufferlen); out = new Ziparchiveoutputstream (New buffered OutputStream (New FileOutputStream (DestFile), Bufferlen)); Ziparchiveentry entry = new Ziparchiveentry (Srcfile.getname ()); Entry.setsize (SRCFILE.LEngth ()); Out.putarchiveentry (entry); Ioutils.copy (is, out); Out.closearchiveentry (); Finally {ioutils.closequietly (IS); ioutils.closequietly (out); } @Override protected void dodecompress (file srcfile, file Destdir) throws IOException {Ziparchiveinputstream is = null ; try {is = new Ziparchiveinputstream (new Bufferedinputstream (New FileInputStream (srcfile), Bufferlen)); Ziparchiveentry entry = null; while ((entry = Is.getnextzipentry ())!= null) {if (Entry.isdirectory ()) {file directory = new file (Destdir, Entry.getna Me ()); Directory.mkdirs (); else {outputstream OS = null; try {OS = new Bufferedoutputstream (new FileOutputStream (Destdir, Entry.getname ())), Bufferlen); Ioutils.copy (is, OS); finally {ioutils.closequietly (OS);}} }} finally {ioutils.closequietly (IS);}} }

Apache Commons compress ar packaged: (Source: Http://blog.csdn.net/inkfish)

Package study.inkfish.compress; Import Java.io.BufferedInputStream; Import Java.io.BufferedOutputStream; Import Java.io.File; Import Java.io.FileInputStream; Import Java.io.FileOutputStream; Import java.io.IOException; Import Java.io.InputStream; Import Org.apache.commons.compress.archivers.ar.ArArchiveEntry; Import Org.apache.commons.compress.archivers.ar.ArArchiveInputStream; Import Org.apache.commons.compress.archivers.ar.ArArchiveOutputStream; Import Org.apache.commons.io.IOUtils; public class Commonsarcompress extends Compress {@Override protected void docompress (file srcfile, file destfile) throws IOException {Ararchiveoutputstream zout = null; InputStream is = null; try {is = new Bufferedinputstream (new FileInputStream (srcfile), bufferlen); zout = new Ararchiveoutputstream (New Buffered OutputStream (New FileOutputStream (DestFile), Bufferlen)); Zout.putarchiveentry (New Ararchiveentry (Srcfile, Srcfile.getname ())); Ioutils.copy (is, zout); Zout.closearchiveentry (); finally {IoutIls.closequietly (IS); ioutils.closequietly (zout); } @Override protected void dodecompress (file srcfile, file Destdir) throws IOException {Ararchiveinputstream is = null; try {is = new Ararchiveinputstream (new Bufferedinputstream (New FileInputStream (srcfile), Bufferlen)); Ararchiveentry entry = null; while ((entry = Is.getnextarentry ())!= null) {if (Entry.isdirectory ()) {file directory = new file (Destdir, Entry.getnam E ()); Directory.mkdirs (); else {Bufferedoutputstream bos = null; try {byte[] buffer = new Byte[bufferlen]; bos = new Bufferedoutputstream (New Fi Leoutputstream (New File (Destdir, Entry.getname ()), Bufferlen); int Len; Long size = Entry.getsize (); while (Size > 0) {if (size < Bufferlen) {len = is.read (buffer, 0, (int) size); size = Len;} else {len = Is.read (buffer); size = Len; } bos.write (buffer, 0, Len); Finally {ioutils.closequietly (BOS);}} }} finally {ioutils.closequietly (IS);}} }

Apache Commons compress Cpio packaged: (Source: Http://blog.csdn.net/inkfish)

Package study.inkfish.compress; Import Java.io.BufferedInputStream; Import Java.io.BufferedOutputStream; Import Java.io.File; Import Java.io.FileInputStream; Import Java.io.FileOutputStream; Import java.io.IOException; Import Java.io.InputStream; Import Org.apache.commons.compress.archivers.cpio.CpioArchiveEntry; Import Org.apache.commons.compress.archivers.cpio.CpioArchiveInputStream; Import Org.apache.commons.compress.archivers.cpio.CpioArchiveOutputStream; Import Org.apache.commons.io.IOUtils; public class Commonscpiocompress extends Compress {@Override protected void docompress (file srcfile, file destfile) throw S IOException {cpioarchiveoutputstream out = null; InputStream is = null; try {is = new Bufferedinputstream (new FileInputStream (srcfile), bufferlen); out = new Cpioarchiveoutputstream (New Buffere Doutputstream (New FileOutputStream (DestFile), Bufferlen)); Out.putarchiveentry (New Cpioarchiveentry (Srcfile, Srcfile.getname ())); Ioutils.copy (is, out); Out.closearchiveentry (); } Finally {ioutils.closequietly (IS); ioutils.closequietly (out); } @Override protected void dodecompress (file srcfile, file Destdir) throws IOException {Cpioarchiveinputstream is = nul L try {is = new Cpioarchiveinputstream (new Bufferedinputstream (New FileInputStream (srcfile), Bufferlen)); Cpioarchiveentry entry = null; while ((entry = Is.getnextcpioentry ())!= null) {if (Entry.isdirectory ()) {file directory = new file (Destdir, ENTRY.GETN Ame ()); Directory.mkdirs (); else {Bufferedoutputstream bos = null; try {byte[] buffer = new Byte[bufferlen]; bos = new Bufferedoutputstream (New Fi Leoutputstream (New File (Destdir, Entry.getname ()), Bufferlen); int Len; Long size = Entry.getsize (); while (Size > 0) {if (size < Bufferlen) {len = is.read (buffer, 0, (int) size); size = Len;} else {len = Is.read (buffer); size = Len; } bos.write (buffer, 0, Len); Finally {ioutils.closequietly (BOS);}} }} finally {ioutils.closequietly (IS);}} }

Apache Commons Compress Tar Packaging: (Source: Http://blog.csdn.net/inkfish)

Package study.inkfish.compress; Import Java.io.BufferedInputStream; Import Java.io.BufferedOutputStream; Import Java.io.File; Import Java.io.FileInputStream; Import Java.io.FileOutputStream; Import java.io.IOException; Import Java.io.InputStream; Import Org.apache.commons.compress.archivers.tar.TarArchiveEntry; Import Org.apache.commons.compress.archivers.tar.TarArchiveInputStream; Import Org.apache.commons.compress.archivers.tar.TarArchiveOutputStream; Import Org.apache.commons.io.IOUtils; public class Commonstarcompress extends Compress {@Override protected void docompress (file srcfile, file destfile) throws IOException {tararchiveoutputstream out = null; InputStream is = null; try {is = new Bufferedinputstream (new FileInputStream (srcfile), bufferlen); out = new Tararchiveoutputstream (New buffered OutputStream (New FileOutputStream (DestFile), Bufferlen)); Tararchiveentry entry = new Tararchiveentry (Srcfile.getname ()); Entry.setsize (Srcfile.length ()); Out.putarchiveentry (entry); IoutIls.copy (is, out); Out.closearchiveentry (); Finally {ioutils.closequietly (IS); ioutils.closequietly (out); } @Override protected void dodecompress (file srcfile, file Destdir) throws IOException {Tararchiveinputstream is = null ; try {is = new Tararchiveinputstream (new Bufferedinputstream (New FileInputStream (srcfile), Bufferlen)); Tararchiveentry entry = null; while ((entry = Is.getnexttarentry ())!= null) {if (Entry.isdirectory ()) {file directory = new file (Destdir, Entry.getna Me ()); Directory.mkdirs (); else {Bufferedoutputstream bos = null; try {byte[] buffer = new Byte[bufferlen]; bos = new Bufferedoutputstream (New Fi Leoutputstream (New File (Destdir, Entry.getname ()), Bufferlen); int Len; Long size = Entry.getsize (); while (Size > 0) {if (size < Bufferlen) {len = is.read (buffer, 0, (int) size); size = Len;} else {len = Is.read (buffer); size = Len; } bos.write (buffer, 0, Len); Finally {ioutils.closequietly (BOS);}} }} finally {ioutils.closequietly (IS);} } }

Note: Org.apache.commons.io package for Apache common IO, Project home: http://commons.apache.org/io/, offers many convenient methods for IO operations, based on Apache 2.0 License, can be used for commercial use. (Source: Http://blog.csdn.net/inkfish)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.