知道多個文件的網頁鏈接/本地文件鏈接,如何批量壓縮成ZIP

url爲網絡鏈接

public class File2ZipUtil {
	public static void file2zip(JSONObject urls,String path) throws Exception {
		byte[] buffer = new byte[1024];
		// 生成的ZIP文件存放地址
		String strZipName = path;
		ZipOutputStream out = new ZipOutputStream(new FileOutputStream(strZipName));
		 // 網絡請求所需變量
		 InputStream reader = null;
		 URL url = null;
		 Iterator<String> it = urls.keys(); 
		 while(it.hasNext()){
				// 獲得key
				String fileName = it.next(); 
				String path = urls.getString(fileName);
				url = new URL(path);
				out.putNextEntry(new ZipEntry(fileName+path.substring(path.lastIndexOf("."))));
				 // 根據Url打開地址,以utf-8編碼的形式返回輸入流
				 reader = url.openStream();
				  int len;
				// 讀入需要下載的文件的內容,打包到zip文件
				while ((len = reader.read(buffer)) > 0) {
					out.write(buffer, 0, len);
				}
		}
		out.closeEntry();
		reader.close();
		out.close();
		System.out.println("生成Demo.zip成功");
	}
	//這個方法可以用在本地鏈接
	//	public static void main(String[] args) throws Exception {
//		byte[] buffer = new byte[1024];
//		// 生成的ZIP文件名爲Demo.zip
//		String strZipName = "e:/Demo.zip";
//		ZipOutputStream out = new ZipOutputStream(new FileOutputStream(strZipName));
//		// 需要同時下載的兩個文件result.txt ,source.txt
//		File[] file1 = { new File("http://images.test.zhiziyun.com/creative/0zoTLi29XRgq_F8W6B0g2gve.jpg"),
//				new File("http://images.test.zhiziyun.com/creative/0zoTLi29XRgq_F8Vkd03bH0Y.jpg") };
//		for (int i = 0; i < file1.length; i++) {
//			FileInputStream fis = new FileInputStream(file1[i]);
//			out.putNextEntry(new ZipEntry(file1[i].getName()));
//			int len;
//			// 讀入需要下載的文件的內容,打包到zip文件
//			while ((len = fis.read(buffer)) > 0) {
//				out.write(buffer, 0, len);
//				out.putNextEntry(new ZipEntry(file1[i].getName()));
//			}
//			out.closeEntry();
//			fis.close();
//		}
//		out.close();
//		System.out.println("生成Demo.zip成功");
//	}
}

public class test {
	@Test
	public void test2() throws Exception {
		JSONObject urls = new JSONObject();
		urls.put("文件1", "http://images/....../1.jpg");
		urls.put("文件2", "http://images/....../2.jpg");
		String path = "e:/Demo.zip";
		File2ZipUtil.file2zip(qualifications, path);
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章