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)