分享非常有用的Java程序 (关键代码) (三)---创建ZIP和JAR文件

原文:分享非常有用的Java程序 (关键代码) (三)---创建ZIP和JAR文件

import java.util.zip.*;   
import java.io.*;
public class ZipIt {
	public static void main(String args[]) throws IOException {
		if (args.length < 2) {
			System.err.println("usage: java ZipIt Zip.zip file1 file2 file3");
			System.exit(-1);
			}
		File zipFile = new File(args[0]);
		if (zipFile.exists()) {
			System.err.println("Zip file already exists, please try another");
			System.exit(-2);
			}
		FileOutputStream fos = new FileOutputStream(zipFile);
		ZipOutputStream zos = new ZipOutputStream(fos);
		int bytesRead;
		byte[] buffer = new byte[1024];
		CRC32 crc = new CRC32();
		for (int i=1, n=args.length; i < n; i++) {
			String name = args[i];
			File file = new File(name);
			if (!file.exists()) {
				System.err.println("Skipping: " + name);
				continue;
				}
			BufferedInputStream bis = new BufferedInputStream( new FileInputStream(file));
			crc.reset();
			while ((bytesRead = bis.read(buffer)) != -1) {
				crc.update(buffer, 0, bytesRead);
				}
			bis.close();
				// Reset to beginning of input stream
			bis = new BufferedInputStream(new FileInputStream(file));
			ZipEntry entry = new ZipEntry(name);
			entry.setMethod(ZipEntry.STORED);
			entry.setCompressedSize(file.length());
			entry.setSize(file.length());
			entry.setCrc(crc.getValue());
			zos.putNextEntry(entry);
			while ((bytesRead = bis.read(buffer)) != -1) {
				zos.write(buffer, 0, bytesRead);
				}               bis.close();
				}
		zos.close();
				}
	}
		}
	}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-07 11:18:05

分享非常有用的Java程序 (关键代码) (三)---创建ZIP和JAR文件的相关文章

分享非常有用的Java程序(关键代码)(七)---抓屏程序

原文:分享非常有用的Java程序(关键代码)(七)---抓屏程序 import java.awt.Dimension; import java.awt.Rectangle; import java.awt.Robot; import java.awt.Toolkit; import java.awt.image.BufferedImage; import javax.imageio.ImageIO; import java.io.File; ... public void captureScre

分享非常有用的Java程序 (关键代码)(五)---把 Array 转换成 Map

原文:分享非常有用的Java程序 (关键代码)(五)---把 Array 转换成 Map import java.util.Map; import org.apache.commons.lang.ArrayUtils; public class Main { public static void main(String[] args) { String[][] countries = { { "United States", "New York" }, { &quo

分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要)

原文:分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要) XML文件 <?xml version="1.0"?> <students> <student> <name>John</name> <grade>B</grade> <age>12</age> </student> <student> <name>Mar

分享非常有用的Java程序 (关键代码)(四)---动态改变数组的大小

原文:分享非常有用的Java程序 (关键代码)(四)---动态改变数组的大小 /** * Reallocates an array with a new size, and copies the contents * * of the old array to the new array. * * @param oldArray the old array, to be reallocated. * * @param newSize the new array size. * * @return

分享非常有用的Java程序(关键代码)(八)---Java InputStream读取网络响应Response数据的方法!(重要)

原文:分享非常有用的Java程序(关键代码)(八)---Java InputStream读取网络响应Response数据的方法!(重要) Java InputStream读取数据问题 ====================================================================== 原理讲解 1. 关于InputStream.read()      在从数据流里读取数据时,为图简单,经常用InputStream.read()方法.这个方法是从流里每次只读

分享非常有用的Java程序 (关键代码) (一)

原文:分享非常有用的Java程序 (关键代码) (一)   分享一些非常有用的Java程序 (关键代码) ,希望对你有所帮助. 1.  得到当前方法的名字 String methodName = Thread.currentThread().getStackTrace()[1].getMethodName(); 2. 转字符串到日期 java.util.Date = java.text.DateFormat.getDateInstance().parse(date String); 或者是: S

分享非常有用的Java程序 (关键代码) (二)---列出文件和目录

原文:分享非常有用的Java程序 (关键代码) (二)---列出文件和目录 File dir = new File("directoryName"); String[] children = dir.list(); if (children == null) { // Either dir does not exist or is not a directory } else { for (int i=0; i < children.length; i++) { // Get f

20个非常有用的Java程序片段--转

原文地址:http://geek.csdn.net/news/detail/236591 下面是20个非常有用的Java程序片段,希望能对你有用. 1. 字符串有整型的相互转换 String a = String.valueOf(2); //integer to numeric string int i = Integer.parseInt(a); //numeric string to an int 2. 向文件末尾添加内容 BufferedWriter out = null; try { o

20个非常有用的Java程序片段

1. 字符串有整型的相互转换 1 2 String a = String.valueOf(2);   //integer to   numeric string int i = Integer.parseInt(a); //numeric string to an int 2. 向文件末尾添加内容 1 2 3 4 5 6 7 8 9 10 11 BufferedWriter out = null; try { out = new BufferedWriter(new   FileWriter(”