Java compressed file tool class ZipUtil usage code example, tool class ziputil
This example uses the Java Zip input/output stream to compress and decompress files. The first part of the code is used to obtain the file path and change the compressed file name. The details are as follows:
Package com.utility.zip; 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.util.zip. zipEntry; import java.util.zip. zipInputStream; import java.util.zip. zipOutputStream; import com. utility. io. IOUtil;/*** use the Java Zip input/output stream to compress and decompress the file ** @ author liujiduo **/public f Inal class ZipUtil {private ZipUtil () {// empty}/*** compressed File ** @ param filePath * path of the File to be compressed * @ return compressed File */public static File zip (String filePath) {File target = null; File source = new File (filePath); if (source. exists () {// compressed file name. source file name. Zip String zipName = source. getName () + ". zip "; target = new File (source. getParent (), zipName); if (target. exists () {target. delete (); // delete the old file} FileOutputStream fos = Null; ZipOutputStream zos = null; try {fos = new FileOutputStream (target); zos = new ZipOutputStream (new BufferedOutputStream (fos )); // Add the corresponding file EntryaddEntry ("/", source, zos);} catch (IOException e) {throw new RuntimeException (e);} finally {IOUtil. closeQuietly (zos, fos) ;}} return target ;} /*** scan to add a file Entry ** @ param base * base path ** @ param source * source File * @ param zos * Zip file output stream * @ throws IOException */priv Ate static void addEntry (String base, File source, ZipOutputStream zos) throws IOException {// classification by directory, for example:/aaa/bbb.txt String entry = base + source. getName (); if (source. isDirectory () {for (File file: source. listFiles () {// recursively list all files in the directory, add the file EntryaddEntry (entry + "/", file, zos) ;}} else {FileInputStream FCM = null; bufferedInputStream bis = null; try {byte [] buffer = new byte [1024*10]; FD = new File InputStream (source); bis = new BufferedInputStream (FCM, buffer. length); int read = 0; zos. putNextEntry (new ZipEntry (entry); while (read = bis. read (buffer, 0, buffer. length ))! =-1) {zos. write (buffer, 0, read);} zos. closeEntry ();} finally {IOUtil. closeQuietly (bis, fiis) ;}}/ *** decompress the file ** @ param filePath * compressed file path */public static void unzip (String filePath) {File source = new File (filePath); if (source. exists () {ZipInputStream zis = null; BufferedOutputStream bos = null; try {zis = new ZipInputStream (new FileInputStream (source); ZipEntry entry = null; while (entry = zis. getNext Entry ())! = Null &&! Entry. isDirectory () {File target = new File (source. getParent (), entry. getName (); if (! Target. getParentFile (). exists () {// create the target file parent directory. getParentFile (). mkdirs ();} // Write File bos = new BufferedOutputStream (new FileOutputStream (target); int read = 0; byte [] buffer = new byte [1024*10]; while (read = zis. read (buffer, 0, buffer. length ))! =-1) {bos. write (buffer, 0, read);} bos. flush ();} zis. closeEntry ();} catch (IOException e) {throw new RuntimeException (e);} finally {IOUtil. closeQuietly (zis, bos) ;}} public static void main (String [] args) {String targetPath = "E :\\ Win7 Wallpaper "; file file = ZipUtil.zip (targetPath); System. out. println (file); ZipUtil. unzip ("F :\\ win7wallpaper .zip ");}}
The following is a Java language description for disabling one or more stream objects through the I/O Stream tool class. It gets a list of closed stream objects, as shown below:
Package com. utility. io; import java. io. closeable; import java. io. IOException; /*** IO stream tool class ** @ author liujiduo **/public class IOUtil {/*** close one or more stream objects ** @ param closeables * object List * @ throws IOException */public static void close (Closeable... closeables) throws IOException {if (closeables! = Null) {for (Closeable closeable: closeables) {if (closeable! = Null) {closeable. close ();}}}} /*** close one or more stream objects ** @ param closeables * List of stream objects that can be closed */public static void closeQuietly (Closeable... closeables) {try {close (closeables);} catch (IOException e) {// do nothing }}}
Summary
The above is all the content of this article on the Java compressed file tool class ZipUtil usage code example, I hope to help you. If you are interested, you can continue to refer to other related topics on this site. If you have any shortcomings, please leave a message.